温馨提示×

GitLab Linux如何配置SSL

小樊
43
2026-07-28 14:28:42
栏目: 云计算

GitLab(Linux) 上配置 SSL(HTTPS),常见有三种方式,最推荐的是 使用 Let’s Encrypt 自动证书,其次是 使用自定义证书

下面按 最常见场景 给你一套完整配置流程(适用于 Omnibus GitLab)。


一、环境说明

  • 系统:Linux(Ubuntu / CentOS / Rocky / Alma 等)
  • GitLab 安装方式:Omnibus GitLab
  • 域名:gitlab.example.com
  • 端口:80 / 443

二、方式一(✅ 推荐):使用 Let’s Encrypt 自动 SSL

1️⃣ 确保域名解析正确

ping gitlab.example.com

必须能解析到 GitLab 服务器公网 IP。


2️⃣ 修改 GitLab 配置文件

sudo vim /etc/gitlab/gitlab.rb

添加或修改以下内容:

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

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

✅ 不要手动配置 nginx['ssl_certificate']
✅ 不要手动配置 80/443 端口


3️⃣ 重新配置 GitLab

sudo gitlab-ctl reconfigure

GitLab 会自动:

  • 申请 Let’s Encrypt 证书
  • 配置 Nginx
  • 开启 HTTPS
  • 自动续期

4️⃣ 验证

浏览器访问:

https://gitlab.example.com

三、方式二:使用自定义 SSL 证书(企业 / 内网)

1️⃣ 准备证书文件

假设你有:

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

放到:

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

2️⃣ 修改 gitlab.rb

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

nginx['enable'] = true
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

四、强制 HTTP → HTTPS(推荐)

nginx['redirect_http_to_https'] = true

然后:

sudo gitlab-ctl reconfigure

五、防火墙 & 端口检查

开放端口

# Ubuntu
sudo ufw allow 80
sudo ufw allow 443

# CentOS
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

六、Let’s Encrypt 自动续期说明

GitLab 会:

  • 每 12 小时检查证书
  • 到期前 30 天自动续签

查看续期状态:

sudo gitlab-ctl renew-le-certs

七、常见问题排查

❌ 证书申请失败

sudo gitlab-ctl tail nginx

常见原因:

  • 80 / 443 端口被占用
  • 域名未解析
  • 云服务器安全组未放行 80/443

❌ 浏览器提示证书不安全

  • 证书与域名不匹配
  • 使用了自签名证书
  • 证书链不完整(需合并 intermediate CA)

八、Docker / 源码安装 GitLab?

如果你用的是:

  • Docker GitLab
  • 源码安装

告诉我,我可以给你 对应版本的 SSL 配置方案


如果你愿意,可以直接把下面信息发我,我可以帮你精确配置:

  1. GitLab 安装方式(Omnibus / Docker)
  2. 系统版本
  3. 域名
  4. 是否公网访问

0