温馨提示×

linux gitlab怎样ssl

小樊
41
2026-10-16 04:59:30
栏目: 云计算

在 Linux 上给 GitLab 配置 SSL(HTTPS),常见有几种方式。下面按最常用、最推荐的方式一步步说明(以官方 Omnibus GitLab 为例)。


一、使用 Let’s Encrypt 自动 SSL(推荐)

1. 前提

  • 域名已解析到服务器 IP
  • 服务器 80 / 443 端口可访问
  • GitLab 为 Omnibus 安装(非源码)

2. 修改配置文件

sudo vim /etc/gitlab/gitlab.rb

示例配置:

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

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

3. 重新配置 GitLab

sudo gitlab-ctl reconfigure

Let’s Encrypt 会自动申请并配置证书。


二、使用自有 SSL 证书(企业常用)

1. 准备证书文件

通常需要:

  • gitlab.example.com.crt
  • gitlab.example.com.key
  • (可选)ca.crt

放到目录:

/etc/gitlab/ssl/

2. 修改 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"

3. 重新配置

sudo gitlab-ctl reconfigure

三、Docker 方式 GitLab SSL

docker-compose 示例

gitlab:
  image: gitlab/gitlab-ee
  environment:
    GITLAB_OMNIBUS_CONFIG: |
      external_url 'https://gitlab.example.com'
      letsencrypt['enable'] = true
  ports:
    - "80:80"
    - "443:443"
  volumes:
    - ./ssl:/etc/gitlab/ssl

四、强制 HTTPS(可选)

nginx['redirect_http_to_https'] = true

五、常见问题

1. 证书不信任

  • 浏览器访问报错
  • 检查证书链是否完整
  • 中间证书需合并到 crt 文件

2. 端口被占用

sudo netstat -tulnp | grep 443

3. 证书续期

Let’s Encrypt:

sudo gitlab-ctl renew-le-certs

六、最小可用示例(自签证书测试)

openssl req -x509 -newkey rsa:2048 -nodes \
-keyout gitlab.key -out gitlab.crt -days 365

⚠️ 仅适合测试,不建议生产使用。


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

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

我可以给你完全对应的配置示例。

0 踩