在Linux版GitLab中配置SSL证书可以确保通过HTTPS进行安全通信。以下是详细的步骤指南:
你可以从多个来源获取SSL证书,包括Let’s Encrypt、商业CA或自签名证书。
Let’s Encrypt提供免费的SSL证书。你可以使用Certbot来获取和续订证书。
安装Certbot:
sudo apt update
sudo apt install certbot python3-certbot-nginx
获取证书:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
按照提示完成证书的获取和配置。
GitLab使用Nginx作为Web服务器,因此你需要修改Nginx配置文件来使用SSL证书。
编辑Nginx配置文件:
打开GitLab的Nginx配置文件,通常位于 /etc/gitlab/gitlab.rb。
sudo nano /etc/gitlab/gitlab.rb
配置SSL: 找到并修改以下配置项:
nginx['listen_port'] = 443
nginx['ssl_certificate'] = "/etc/letsencrypt/live/yourdomain.com/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/yourdomain.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"
确保路径指向你从Let’s Encrypt获取的证书文件。
重新配置GitLab: 保存并关闭文件后,运行以下命令重新配置GitLab:
sudo gitlab-ctl reconfigure
确保Nginx正确加载了SSL证书,并且GitLab可以通过HTTPS访问。
检查Nginx状态:
sudo gitlab-ctl status nginx
访问GitLab:
打开浏览器,访问 https://yourdomain.com,确保页面显示正常并且浏览器显示安全连接。
Let’s Encrypt证书通常每90天过期一次。你可以使用Certbot的自动续订功能来确保证书始终有效。
设置自动续订: Certbot会自动设置一个cron任务或systemd定时器来续订证书。你可以手动测试续订过程:
sudo certbot renew --dry-run
如果一切正常,Certbot会续订证书并更新Nginx配置。
通过以上步骤,你应该能够在Linux版GitLab上成功配置SSL证书,确保安全通信。