阅读量:11
在Debian上配置GitLab的SSL证书可以通过多种方式实现,包括使用Let’s Encrypt免费证书、自签名证书或购买商业证书。以下是使用Let’s Encrypt免费证书的详细步骤:
前提条件
- 安装GitLab:确保你已经在Debian上安装了GitLab。
- 安装Certbot:Certbot是一个用于获取和续订Let’s Encrypt证书的工具。
sudo apt update
sudo apt install certbot python3-certbot-nginx
配置SSL证书
1. 获取Let’s Encrypt证书
使用Certbot获取Let’s Encrypt证书。假设你的GitLab域名是gitlab.example.com
。
sudo certbot --nginx -d gitlab.example.com
Certbot会自动配置Nginx以使用SSL,并将证书和私钥文件放在/etc/letsencrypt/live/gitlab.example.com/
目录下。
2. 配置GitLab使用SSL
编辑GitLab的配置文件/etc/gitlab/gitlab.rb
,确保以下配置项正确设置:
external_url 'https://gitlab.example.com'
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.example.com/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.example.com/privkey.pem"
nginx['ssl_protocols'] = "TLSv1.2 TLSv1.3"
nginx['ssl_ciphers'] = "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:!DSS"
保存并关闭文件后,运行以下命令重新配置GitLab:
sudo gitlab-ctl reconfigure
3. 自动续订证书
Certbot会自动设置一个cron任务来定期续订证书。你可以手动测试续订过程:
sudo certbot renew --dry-run
如果没有错误,证书将会被成功续订。
验证配置
打开浏览器,访问https://gitlab.example.com
,确保SSL证书已正确安装并且页面可以正常访问。
通过以上步骤,你应该能够在Debian上成功配置GitLab的SSL证书。如果你遇到任何问题,请检查Nginx和GitLab的日志文件以获取更多信息。