在 Linux 上部署 GitLab 并启用 SSL(HTTPS),通常有两种常见方式:
你可以使用:
证书文件一般包含:
/etc/gitlab/ssl/gitlab.example.com.crt
/etc/gitlab/ssl/gitlab.example.com.key
目录不存在可创建:
sudo mkdir -p /etc/gitlab/ssl
sudo chmod 700 /etc/gitlab/ssl
编辑配置文件:
sudo vi /etc/gitlab/gitlab.rb
添加或修改以下内容:
external_url "https://gitlab.example.com"
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"
sudo gitlab-ctl reconfigure
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
或(iptables):
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
GitLab 自带支持:
external_url "https://gitlab.example.com"
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ["admin@example.com"]
letsencrypt['auto_renew'] = true
然后:
sudo gitlab-ctl reconfigure
✅ 会自动申请并配置证书
如果你用 外部 Nginx:
external_url "https://gitlab.example.com"
nginx['enable'] = false
web_server['external_users'] = ['www-data']
gitlab_rails['trusted_proxies'] = ['127.0.0.1']
外部 Nginx 示例:
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:80;
}
}
nginx['listen_port'] = 80
sudo gitlab-ctl status
curl -I https://gitlab.example.com
如果你愿意,可以告诉我:
我可以给你 完全贴合你环境的配置示例。