温馨提示×

centos gitlab怎么 ssl

小樊
43
2026-09-24 03:53:10
栏目: 云计算

在 CentOS 上给 GitLab 配置 SSL(HTTPS),常见有三种方式。下面以 Omnibus GitLab(官方 RPM 安装) 为例说明,最推荐、最简单。


一、使用 Let’s Encrypt 自动 SSL(推荐)

1. 确保域名已解析

例如:

gitlab.example.com -> 你的服务器IP

2. 修改 GitLab 配置

编辑配置文件:

sudo vim /etc/gitlab/gitlab.rb

添加或修改:

external_url 'https://gitlab.example.com'

letsencrypt['enable'] = true
letsencrypt['auto_renew'] = true
letsencrypt['contact_emails'] = ['admin@example.com']

3. 重新配置 GitLab

sudo gitlab-ctl reconfigure

✅ 访问 https://gitlab.example.com 即可,证书自动签发和续期。


二、使用自有 SSL 证书(企业/内网常用)

1. 准备证书文件

假设你有:

gitlab.example.com.crt
gitlab.example.com.key

放到目录:

sudo mkdir -p /etc/gitlab/ssl
sudo chmod 700 /etc/gitlab/ssl
sudo cp gitlab.example.com.crt /etc/gitlab/ssl/
sudo cp gitlab.example.com.key /etc/gitlab/ssl/

2. 修改配置

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"

3. 重新配置

sudo gitlab-ctl reconfigure

三、使用反向代理(Nginx / Apache 外部 SSL)

适合 GitLab 前面还有一层代理的情况。

GitLab 配置

external_url 'https://gitlab.example.com'
gitlab_rails['trusted_proxies'] = ['127.0.0.1']
nginx['listen_https'] = false
nginx['listen_port'] = 80

然后在外层 Nginx 配置 SSL 并反代到 GitLab。


四、防火墙 & SELinux 注意

开放 HTTPS

sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

SELinux(如启用)

sudo setsebool -P httpd_can_network_connect on

五、验证 SSL

curl -I https://gitlab.example.com

或使用浏览器查看证书信息。


常见问题

❌ 证书不生效

  • 确认 external_url 是 https
  • 确认 reconfigure 成功

❌ Let’s Encrypt 失败

  • 端口 80 必须可访问
  • 域名必须公网解析

如果你愿意,可以告诉我:

  • GitLab 安装方式(Omnibus / Docker / 源码)
  • CentOS 版本(7 / 8 / Stream)
  • 是否内网 / 有无公网 IP

我可以给你更精确的步骤。

0 踩