温馨提示×

debian gitlab怎么ssl

小樊
40
2026-09-05 14:06:10
栏目: 云计算

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


一、使用 Let’s Encrypt 免费证书(推荐)

1. 前提条件

  • 域名已解析到服务器 IP(如 gitlab.example.com
  • 服务器 80 / 443 端口可访问
  • 已安装 GitLab(Omnibus 方式)

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

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/

2. 修改 GitLab 配置

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"

如果是泛域名或中间证书:

nginx['ssl_certificate'] = "/etc/gitlab/ssl/fullchain.crt"

3. 重新配置

sudo gitlab-ctl reconfigure

4. 防火墙(如需要)

sudo ufw allow 443
sudo ufw allow 80

三、强制 HTTP 跳转到 HTTPS(可选)

默认 GitLab 已开启,如未生效可加:

nginx['redirect_http_to_https'] = true

四、常见问题

❌ Let’s Encrypt 申请失败

  • 检查 80 端口是否被占用
  • 检查域名解析
  • 查看日志:
sudo gitlab-ctl tail nginx

❌ 证书过期

Let’s Encrypt 会自动续期
手动测试:

sudo gitlab-rake letsencrypt:renew

如果你告诉我:

  • GitLab 安装方式(Omnibus / Docker / 源码)
  • 是否公网 / 内网
  • 使用的域名或 IP

我可以给你更精确的配置示例

0