在Ubuntu上為Nginx設置SSL證書,通常需要以下幾個步驟:
安裝Nginx(如果尚未安裝):
sudo apt update
sudo apt install nginx
獲取SSL證書: 你可以從Let’s Encrypt免費獲取SSL證書,或者購買一個SSL證書。
使用Let’s Encrypt獲取證書(推薦):
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
在提示時,Certbot會自動配置Nginx并設置SSL。
如果你已經有了證書文件(例如,從Let’s Encrypt下載的fullchain.pem
和私鑰privkey.pem
),你可以跳過這一步。
配置Nginx:
如果你是通過Certbot獲取的證書,Nginx配置文件通常會被自動創建或修改。配置文件位于/etc/nginx/sites-available/yourdomain.com
。
如果你是手動配置的,或者需要手動修改配置,編輯Nginx配置文件:
sudo nano /etc/nginx/sites-available/yourdomain.com
確保你的配置文件中有以下SSL相關的配置:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256...';
ssl_prefer_server_ciphers on;
# 其他配置...
}
請確保將yourdomain.com
替換為你的實際域名,并且SSL證書和密鑰的路徑正確。
測試Nginx配置: 在重新加載Nginx之前,先測試配置文件是否有語法錯誤:
sudo nginx -t
重新加載Nginx: 如果配置測試通過,重新加載Nginx以應用更改:
sudo systemctl reload nginx
更新防火墻設置(如果有必要): 確保防火墻允許HTTPS流量:
sudo ufw allow 'Nginx Full'
驗證SSL設置: 使用SSL檢查工具(如SSL Labs)來驗證你的SSL配置是否正確。
完成以上步驟后,你的網站應該已經通過HTTPS提供服務了。記得定期更新你的證書,特別是Let’s Encrypt的證書通常每90天更新一次。