温馨提示×

linux gitlab ssl怎么配

小樊
49
2026-09-25 18:03:01
栏目: 云计算

下面按最常见的场景给你讲:在 Linux 服务器上自建 GitLab(Omnibus 安装) 如何配置 HTTPS / SSL。


一、准备 SSL 证书

方式 1:使用 Let’s Encrypt(推荐,免费)

GitLab 自带支持。

方式 2:自己已有证书

比如:

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

二、修改 GitLab 配置文件

编辑配置文件:

sudo vim /etc/gitlab/gitlab.rb

1️⃣ 设置域名和 HTTPS

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

⚠️ 必须是 https://


2️⃣ 配置 SSL 证书路径(自有证书)

nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"

创建目录并放入证书:

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/*

3️⃣(可选)自动跳转到 HTTPS

nginx['redirect_http_to_https'] = true

4️⃣(推荐)只监听 HTTPS

nginx['listen_https'] = true
nginx['listen_http'] = false

三、使用 Let’s Encrypt(官方支持)

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

GitLab 会自动:

  • 申请证书
  • 配置 Nginx
  • 自动续期

四、重新配置 GitLab

sudo gitlab-ctl reconfigure

重启(一般 reconfigure 已包含):

sudo gitlab-ctl restart

五、防火墙 & 端口

确保开放:

sudo ufw allow 443
sudo ufw allow 80   # 申请 Let's Encrypt 时需要

六、验证

浏览器访问:

https://gitlab.example.com

无证书警告即成功 ✅


七、常见问题

❌ 证书不信任

  • 浏览器访问提示不安全
  • 原因:用了自签名或中间证书缺失

✅ 解决:

  • 使用 Let’s Encrypt
  • 或合并中间证书

❌ 端口冲突

GitLab 自带 Nginx,不要再用系统 Nginx 占 80/443


八、如果你用的是 Docker GitLab

告诉我你是:

  • ✅ Omnibus(本机安装)
  • ✅ Docker
  • ✅ Kubernetes / Helm

我可以给你对应版本配置。

需要我帮你写完整 gitlab.rb 示例或Docker Compose SSL 配置吗?

0 踩