在 Debian 上部署的 GitLab 开启 HTTPS,通常有两种情况:
✅ 使用官方 Omnibus GitLab 包(最常见)
✅ 使用 Docker / 源码安装(配置方式不同)
下面以 Omnibus GitLab(官方推荐) 为主说明,这是 Debian 上最简单、最稳定的方式。
gitlab.example.com)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
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 会自动申请并续期证书
sudo gitlab-ctl reconfigure
⚠️ 第一次会稍慢,这是正常的
浏览器访问:
https://gitlab.example.com
✅ 应自动跳转 HTTPS,证书有效
如果你已有证书:
sudo mkdir -p /etc/gitlab/ssl
sudo cp gitlab.example.com.crt /etc/gitlab/ssl/
sudo cp gitlab.example.com.key /etc/gitlab/ssl/
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"
sudo gitlab-ctl reconfigure
GitLab 默认已强制跳转,但可确认:
nginx['redirect_http_to_https'] = true
sudo gitlab-ctl tail nginx
sudo gitlab-ctl status
sudo gitlab-ctl restart
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
✅ 生产环境推荐:
如果你愿意,可以告诉我:
我可以给你 完全针对你环境的配置方案 ✅