温馨提示×

Debian GitLab如何开启HTTPS

小樊
33
2026-07-18 13:57:00
栏目: 智能运维

Debian 上部署的 GitLab 开启 HTTPS,通常有两种情况:
使用官方 Omnibus GitLab 包(最常见)
使用 Docker / 源码安装(配置方式不同)

下面以 Omnibus GitLab(官方推荐) 为主说明,这是 Debian 上最简单、最稳定的方式。


一、前提条件

  • 已安装 GitLab(Omnibus 包)
  • 拥有 域名(如 gitlab.example.com
  • 域名已解析到服务器 IP
  • 80 / 443 端口未被占用
  • root 或 sudo 权限

二、安装 GitLab(如未安装)

sudo apt update
sudo apt install -y curl openssh-server ca-certificates tzdata

curl -fsSL https://packages.gitlab.com/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/gitlab-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/gitlab-archive-keyring.gpg] https://packages.gitlab.com/gitlab/gitlab-ee/debian $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gitlab_gitlab-ee.list

sudo apt update
sudo EXTERNAL_URL="http://gitlab.example.com" apt install gitlab-ee

如果是 CE 版,把 gitlab-ee 换成 gitlab-ce


三、开启 HTTPS(推荐:Let’s Encrypt)

1️⃣ 编辑 GitLab 配置

sudo nano /etc/gitlab/gitlab.rb

修改或添加以下内容:

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

letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['your@email.com']
letsencrypt['auto_renew'] = true

✅ GitLab 会自动申请并续期证书


2️⃣ 重新配置 GitLab

sudo gitlab-ctl reconfigure

⚠️ 第一次会稍慢,这是正常的


3️⃣ 验证 HTTPS

浏览器访问:

https://gitlab.example.com

✅ 应自动跳转 HTTPS,证书有效


四、使用自定义 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/

2️⃣ 修改配置

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(可选)

GitLab 默认已强制跳转,但可确认:

nginx['redirect_http_to_https'] = true

六、常见问题排查

❌ Let’s Encrypt 失败

  • 检查 80 / 443 端口是否开放
  • 确保域名可公网访问
  • 查看日志:
sudo gitlab-ctl tail nginx

❌ 502 / 无法访问

sudo gitlab-ctl status
sudo gitlab-ctl restart

七、Docker 部署(简要)

docker run -d \
  --hostname gitlab.example.com \
  --publish 443:443 \
  --publish 80:80 \
  --name gitlab \
  -v gitlab-config:/etc/gitlab \
  -v gitlab-logs:/var/log/gitlab \
  -v gitlab-data:/var/opt/gitlab \
  gitlab/gitlab-ee

然后在 /etc/gitlab/gitlab.rb 中配置 HTTPS(同上)


八、总结

最简单方式

修改 external_url + 启用 Let’s Encrypt + gitlab-ctl reconfigure

生产环境推荐

  • HTTPS + 自动续期
  • 使用域名而非 IP

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

  • GitLab 版本(CE / EE)
  • 是否 Docker
  • 是否内网环境

我可以给你 完全针对你环境的配置方案

0