下面以 Linux + 自建 GitLab(Omnibus 安装方式) 为例,说明如何配置 SSL(HTTPS)。如果你用的是 Docker 或源码安装,可以告诉我,我再补充对应方式。
你需要:
gitlab.example.com)gitlab.example.com.crt(或 .pem)gitlab.example.com.keysudo gitlab-ctl stop nginx
sudo certbot certonly --webroot -w /var/opt/gitlab/nginx/www -d gitlab.example.com
证书路径一般为:
/etc/letsencrypt/live/gitlab.example.com/fullchain.pem
/etc/letsencrypt/live/gitlab.example.com/privkey.pem
把证书放到:
/etc/gitlab/ssl/gitlab.example.com.crt
/etc/gitlab/ssl/gitlab.example.com.key
编辑配置文件:
sudo vim /etc/gitlab/gitlab.rb
external_url 'https://gitlab.example.com'
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"
如果是 Let’s Encrypt:
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.example.com/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.example.com/privkey.pem"
nginx['redirect_http_to_https'] = true
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
确保开放:
sudo ufw allow 443
sudo ufw allow 80
浏览器访问:
https://gitlab.example.com
无证书警告即配置成功。
sudo crontab -e
添加:
0 3 * * * /usr/bin/certbot renew --quiet && /opt/gitlab/bin/gitlab-ctl restart nginx
如果你用的是:
可以告诉我,我可以给你更精确的配置示例。