在Debian上配置GitLab的SSL證書可以通過多種方式實現,包括使用Let’s Encrypt免費證書、自簽名證書或購買商業證書。以下是使用Let’s Encrypt免費證書的詳細步驟:
sudo apt update
sudo apt install certbot python3-certbot-nginx
使用Certbot獲取Let’s Encrypt證書。假設你的GitLab域名是gitlab.example.com
。
sudo certbot --nginx -d gitlab.example.com
Certbot會自動配置Nginx以使用SSL,并將證書和私鑰文件放在/etc/letsencrypt/live/gitlab.example.com/
目錄下。
編輯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
Certbot會自動設置一個cron任務來定期續訂證書。你可以手動測試續訂過程:
sudo certbot renew --dry-run
如果沒有錯誤,證書將會被成功續訂。
打開瀏覽器,訪問https://gitlab.example.com
,確保SSL證書已正確安裝并且頁面可以正常訪問。
通過以上步驟,你應該能夠在Debian上成功配置GitLab的SSL證書。如果你遇到任何問題,請檢查Nginx和GitLab的日志文件以獲取更多信息。