在 Linux 上为 GitLab 配置 SSL(HTTPS),通常有两种常见方式:
你可以:
sudo apt install certbot
sudo certbot certonly --webroot -w /var/www/ -d gitlab.example.com
证书路径一般为:
/etc/letsencrypt/live/gitlab.example.com/fullchain.pem
/etc/letsencrypt/live/gitlab.example.com/privkey.pem
编辑配置文件:
sudo vim /etc/gitlab/gitlab.rb
关键配置:
external_url 'https://gitlab.example.com'
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.example.com/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.example.com/privkey.pem"
如果你用 自签名证书:
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.key"
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
访问:
https://gitlab.example.com
如果你不想用 GitLab 自带的 Nginx:
nginx['enable'] = false
server {
listen 443 ssl;
server_name gitlab.example.com;
ssl_certificate /etc/ssl/gitlab.crt;
ssl_certificate_key /etc/ssl/gitlab.key;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
然后:
sudo gitlab-ctl reconfigure
sudo systemctl restart nginx
sudo mkdir -p /etc/gitlab/ssl
sudo openssl req -x509 -newkey rsa:2048 -nodes \
-keyout /etc/gitlab/ssl/gitlab.key \
-out /etc/gitlab/ssl/gitlab.crt -days 365
✅ 端口被占用
✅ 防火墙未放行 443
✅ Let’s Encrypt 证书过期(需自动续期)
如果你告诉我:
我可以给你更精确的配置示例。