在 Linux 上给 GitLab 配置 SSL(HTTPS),常见有几种方式。下面按最常用、最推荐的方式一步步说明(以官方 Omnibus GitLab 为例)。
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
sudo gitlab-ctl reconfigure
Let’s Encrypt 会自动申请并配置证书。
通常需要:
gitlab.example.com.crtgitlab.example.com.keyca.crt放到目录:
/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:
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
nginx['redirect_http_to_https'] = true
sudo netstat -tulnp | grep 443
Let’s Encrypt:
sudo gitlab-ctl renew-le-certs
openssl req -x509 -newkey rsa:2048 -nodes \
-keyout gitlab.key -out gitlab.crt -days 365
⚠️ 仅适合测试,不建议生产使用。
如果你愿意,可以告诉我:
我可以给你完全对应的配置示例。