在 Debian 上给 GitLab 配置 SSL(HTTPS),通常有两种常见方式:
假设你已经有:
/etc/gitlab/ssl/gitlab.example.com.crt/etc/gitlab/ssl/gitlab.example.com.key如果没有,可先用测试证书:
sudo mkdir -p /etc/gitlab/ssl
sudo openssl req -newkey rsa:2048 -nodes \
-keyout /etc/gitlab/ssl/gitlab.example.com.key \
-x509 -days 365 \
-out /etc/gitlab/ssl/gitlab.example.com.crt
⚠️ 生产环境建议使用 Let’s Encrypt 免费证书
编辑配置文件:
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"
# 可选:强制 HTTPS 跳转
nginx['redirect_http_to_https'] = true
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
访问:
https://gitlab.example.com
GitLab 内置支持 Let’s Encrypt
external_url 'https://gitlab.example.com'
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['admin@example.com']
letsencrypt['auto_renew'] = true
sudo gitlab-ctl reconfigure
GitLab 会自动申请并配置 SSL
如果你用系统 Nginx:
external_url 'https://gitlab.example.com'
nginx['enable'] = false
web_server['external_users'] = ['www-data']
gitlab_rails['trusted_proxies'] = ['127.0.0.1']
然后在 /etc/nginx/sites-enabled/gitlab.conf 配置 SSL
GitLab 默认使用 80 / 443
如果端口被占用:
nginx['listen_port'] = 8080
sudo ufw allow 443
sudo ufw allow 80
curl -I https://gitlab.example.com
或浏览器访问查看证书
如果你愿意,可以告诉我:
gitlab-ctl --version)我可以给你更精确的配置示例。