温馨提示×

gitlab linux如何ssl

小樊
43
2026-09-16 16:02:10
栏目: 云计算

在 Linux 上部署 GitLab 并启用 SSL(HTTPS),通常有两种常见方式:


一、使用 GitLab 自带的 Nginx(推荐,最简单)

1️⃣ 准备 SSL 证书

你可以使用:

  • Let’s Encrypt(免费)
  • 或自己购买的证书

证书文件一般包含:

/etc/gitlab/ssl/gitlab.example.com.crt
/etc/gitlab/ssl/gitlab.example.com.key

目录不存在可创建:

sudo mkdir -p /etc/gitlab/ssl
sudo chmod 700 /etc/gitlab/ssl

2️⃣ 修改 GitLab 配置

编辑配置文件:

sudo vi /etc/gitlab/gitlab.rb

添加或修改以下内容:

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

nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"

3️⃣ 重新配置 GitLab

sudo gitlab-ctl reconfigure

4️⃣ 防火墙放行

sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

或(iptables):

sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT

二、使用 Let’s Encrypt 自动 SSL(最省事)

GitLab 自带支持:

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

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

然后:

sudo gitlab-ctl reconfigure

✅ 会自动申请并配置证书


三、使用外部 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']

外部 Nginx 示例:

server {
    listen 443 ssl;
    server_name gitlab.example.com;

    ssl_certificate     /etc/ssl/gitlab.crt;
    ssl_certificate_key /etc/ssl/gitlab.key;

    location / {
        proxy_pass http://127.0.0.1:80;
    }
}

四、常见问题

❌ 浏览器提示证书不安全

  • 证书域名不匹配
  • 使用了自签名证书(需手动信任)

❌ 80 端口被占用

nginx['listen_port'] = 80

✅ 检查 SSL 状态

sudo gitlab-ctl status
curl -I https://gitlab.example.com

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

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

我可以给你 完全贴合你环境的配置示例。

0 踩