温馨提示×

linux gitlab ssl怎么配置

小樊
46
2026-10-19 03:07:47
栏目: 云计算

下面按常见场景给你说明:在 Linux 服务器上部署 GitLab 并配置 SSL(HTTPS)。以 Omnibus GitLab(官方包) 为例,这是最常见、最推荐的方式。


一、准备 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'

三、使用 Let’s Encrypt 自动配置 SSL(推荐)

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

保存后执行:

sudo gitlab-ctl reconfigure

✅ GitLab 会自动申请并配置证书


四、使用自定义 SSL 证书(手动)

1️⃣ 放置证书文件

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['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 ufw allow 80
sudo ufw allow 443

或(CentOS / Rocky):

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

七、验证

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

浏览器访问:

https://gitlab.example.com

八、常见问题

❌ 证书不受信任

  • 自签证书需导入到客户端
  • 或使用受信任 CA

❌ 域名无法解析

  • 确保 DNS 已指向服务器 IP

❌ 端口被占用

sudo netstat -tulnp | grep 80

九、如果你用的是 Docker GitLab

告诉我你用的是:

  • ✅ 官方 Omnibus
  • ✅ Docker
  • ✅ Kubernetes
  • ✅ 源码安装

我可以给你对应版本的 SSL 配置示例。

需要我帮你写一份完整可复制的 gitlab.rb 示例吗?

0 踩