在 CentOS 上给 GitLab 开启 HTTPS,常见有三种方式,最推荐的是 让 GitLab 自带 Nginx 直接支持 HTTPS。下面按“最常用 → 进阶”给你完整步骤。
gitlab.example.com)sudo yum install -y curl policycoreutils openssh-server
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ce
⚠️ 先不用 HTTPS,后面统一改
GitLab 自带支持
假设证书路径:
/etc/gitlab/ssl/gitlab.example.com.crt
/etc/gitlab/ssl/gitlab.example.com.key
sudo vi /etc/gitlab/gitlab.rb
external_url "https://gitlab.example.com"
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['admin@example.com']
letsencrypt['auto_renew'] = true
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"
sudo gitlab-ctl reconfigure
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
浏览器访问:
https://gitlab.example.com
适合你 已有 Nginx / 需要统一代理
external_url "https://gitlab.example.com"
nginx['enable'] = false
server {
listen 443 ssl;
server_name gitlab.example.com;
ssl_certificate /etc/nginx/ssl/gitlab.crt;
ssl_certificate_key /etc/nginx/ssl/gitlab.key;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
}
}
然后:
gitlab-ctl reconfigure
systemctl restart nginx
sudo netstat -tulnp | grep :80
sudo gitlab-ctl tail
GitLab 会自动续期,也可手动:
sudo gitlab-ctl renew-le-certs
✅ 最省事:
GitLab 自带 Nginx + Let’s Encrypt
✅ 企业内网:
使用内网 CA 证书 + 自带 Nginx
如果你愿意,可以告诉我:
我可以给你 完全定制化的配置方案 ✅