在Debian上為GitLab配置SSL,通常需要使用Let’s Encrypt提供的免費SSL證書。以下是詳細步驟:
Certbot是一個自動化的工具,用于獲取和續訂Let’s Encrypt證書。
sudo apt update
sudo apt install certbot python3-certbot-nginx
GitLab使用Nginx作為其Web服務器。你需要確保Nginx配置文件中包含SSL相關的設置。
編輯GitLab的Nginx配置文件,通常位于 /etc/gitlab/gitlab.rb。
sudo nano /etc/gitlab/gitlab.rb
在文件中找到以下行并取消注釋(如果它們被注釋掉了):
nginx['ssl_certificate'] = "/etc/letsencrypt/live/yourdomain.com/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/yourdomain.com/privkey.pem"
將 yourdomain.com 替換為你的實際域名。
保存并關閉文件后,運行以下命令以應用更改:
sudo gitlab-ctl reconfigure
使用Certbot獲取SSL證書。
sudo certbot --nginx -d yourdomain.com
按照提示完成證書的獲取過程。Certbot會自動更新Nginx配置文件以包含SSL設置,并創建符號鏈接以便GitLab可以訪問這些證書。
確保Nginx正確配置了SSL。你可以使用以下命令檢查Nginx配置:
sudo nginx -t
如果沒有錯誤,重新加載Nginx服務:
sudo systemctl reload nginx
Let’s Encrypt證書通常每90天過期一次。Certbot可以自動續訂證書。你可以設置一個cron作業來定期運行Certbot的續訂腳本。
編輯cron作業:
sudo crontab -e
添加以下行:
0 0,12 * * * root certbot renew --post-hook "systemctl reload nginx"
這將在每天午夜和中午自動檢查并續訂證書,如果證書即將過期,它會自動重新加載Nginx服務。
最后,確保你的網站可以通過HTTPS訪問。打開瀏覽器并訪問 https://yourdomain.com,你應該看到一個安全的連接。
通過以上步驟,你應該能夠在Debian上成功為GitLab配置SSL。