温馨提示×

debian gitlab如何设ssl

小樊
33
2026-10-11 08:48:56
栏目: 云计算

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


一、使用 GitLab 自带 Nginx + 自有证书(推荐)

1. 准备 SSL 证书

假设你已经有:

  • 证书:/etc/gitlab/ssl/gitlab.example.com.crt
  • 私钥:/etc/gitlab/ssl/gitlab.example.com.key

如果没有,可先用测试证书:

sudo mkdir -p /etc/gitlab/ssl
sudo openssl req -newkey rsa:2048 -nodes \
  -keyout /etc/gitlab/ssl/gitlab.example.com.key \
  -x509 -days 365 \
  -out /etc/gitlab/ssl/gitlab.example.com.crt

⚠️ 生产环境建议使用 Let’s Encrypt 免费证书


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"

# 可选:强制 HTTPS 跳转
nginx['redirect_http_to_https'] = true

3. 重新配置 GitLab

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

访问:

https://gitlab.example.com

二、使用 Let’s Encrypt 自动证书(推荐生产环境)

GitLab 内置支持 Let’s Encrypt

1. 修改配置

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

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

2. 重新配置

sudo gitlab-ctl reconfigure

GitLab 会自动申请并配置 SSL


三、使用外部 Nginx / Apache 反向代理(高级)

如果你用系统 Nginx:

external_url 'https://gitlab.example.com'
nginx['enable'] = false
web_server['external_users'] = ['www-data']
gitlab_rails['trusted_proxies'] = ['127.0.0.1']

然后在 /etc/nginx/sites-enabled/gitlab.conf 配置 SSL


四、常见问题

1. 端口冲突

GitLab 默认使用 80 / 443
如果端口被占用:

nginx['listen_port'] = 8080

2. 防火墙

sudo ufw allow 443
sudo ufw allow 80

五、验证 SSL

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

或浏览器访问查看证书


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

  • GitLab 版本(gitlab-ctl --version)
  • 是否用 Docker
  • 域名是否已解析

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

0 踩