温馨提示×

ubuntu gitlab怎样配置ssl

小樊
44
2026-10-19 12:15:40
栏目: 云计算

在 Ubuntu 上给 GitLab 配置 SSL(HTTPS),常见有两种方式:

  1. GitLab 自带 Nginx(官方包安装,最常用)
  2. 使用外部 Nginx / Apache 反代

下面以 GitLab Omnibus(官方 apt 安装) 为例说明。


一、准备工作

1. 域名与解析

  • 准备一个域名,例如:gitlab.example.com
  • 将 A 记录指向你的 Ubuntu 服务器 IP

2. 防火墙

sudo ufw allow 80
sudo ufw allow 443

二、使用 Let’s Encrypt 免费 SSL(推荐)

GitLab 自带 Let’s Encrypt 支持。

1. 编辑配置文件

sudo vim /etc/gitlab/gitlab.rb

2. 修改以下配置

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

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

如果之前是 http,改成 https 后 GitLab 会自动重定向

3. 重新配置 GitLab

sudo gitlab-ctl reconfigure

4. 验证

浏览器访问:

https://gitlab.example.com

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

1. 准备证书文件

/etc/gitlab/ssl/gitlab.example.com.crt
/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

四、强制 HTTPS 重定向(可选)

nginx['redirect_http_to_https'] = true

然后:

sudo gitlab-ctl reconfigure

五、常见问题

1. 80 端口被占用

Let’s Encrypt 验证需要 80 端口:

sudo netstat -tulnp | grep :80

2. 证书续期失败

手动测试:

sudo gitlab-rake letsencrypt:redo

3. 修改 external_url 后无法访问

确保:

  • DNS 已生效
  • 重新执行 gitlab-ctl reconfigure

六、使用 Docker 版 GitLab(补充)

如果你用的是 Docker:

docker run -d \
  --name gitlab \
  -p 443:443 -p 80:80 \
  -v /srv/gitlab/config:/etc/gitlab \
  -v /srv/gitlab/ssl:/etc/gitlab/ssl \
  gitlab/gitlab-ce

然后在 /srv/gitlab/config/gitlab.rb 中配置 SSL。


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

  • GitLab 安装方式(apt / docker)
  • 是否已有证书
  • 是否使用公网域名

我可以给你一份完全对应的配置示例。

0 踩