温馨提示×

linux gitlab怎么开启https

小樊
35
2026-10-13 08:18:50
栏目: 智能运维

在 Linux 上部署的 GitLab 开启 HTTPS,通常有两种常见场景:


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

1. 准备 SSL 证书

你需要:

  • 证书文件:gitlab.example.com.crt
  • 私钥文件:gitlab.example.com.key

如果是 Let’s Encrypt:

sudo certbot certonly --webroot -w /var/www/letsencrypt -d gitlab.example.com

证书一般在:

/etc/letsencrypt/live/gitlab.example.com/

2. 修改 GitLab 配置

编辑配置文件:

sudo vim /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"

如果是 Let’s Encrypt:

nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.example.com/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.example.com/privkey.pem"

3. 重新配置 GitLab

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

4. 开放防火墙端口

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

或(iptables):

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

二、使用反向代理(Nginx / Apache 在外面)

如果你用 外部 Nginx:

1. GitLab 配置

external_url 'https://gitlab.example.com'
gitlab_rails['trusted_proxies'] = ['127.0.0.1']
nginx['enable'] = false
sudo gitlab-ctl reconfigure

2. 外部 Nginx 示例

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

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

    location / {
        proxy_pass http://127.0.0.1:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
    }
}

三、验证是否成功

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

浏览器访问:

https://gitlab.example.com

四、常见问题

  • 证书路径权限问题:确保 GitLab 用户可读
  • 端口冲突:确认 80/443 未被占用
  • Let’s Encrypt 自动续期:可加 cron 任务

如果你能告诉我:

  • GitLab 是 Omnibus 安装 还是 Docker
  • 是否使用 Let’s Encrypt
  • Linux 发行版(CentOS / Ubuntu)

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

0 踩