在Debian系統上配置Nginx以支持SSL終結(即使用SSL/TLS加密的HTTP流量在Nginx服務器上進行解密,然后將未加密的HTTP流量轉發到后端服務器)涉及幾個步驟。以下是一個基本的指南:
首先,確保你已經安裝了Nginx和SSL證書。你可以使用Let’s Encrypt來獲取免費的SSL證書。
sudo apt update
sudo apt install nginx
你可以使用Certbot來獲取和配置Let’s Encrypt證書。
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
按照提示完成證書的獲取和配置。
編輯Nginx配置文件以啟用SSL并設置SSL終結。通常,配置文件位于/etc/nginx/sites-available/目錄下。
sudo nano /etc/nginx/sites-available/yourdomain.com
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:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://backend_server:port;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
location / {
return 301 https://$host$request_uri;
}
}
在這個配置中:
listen 443 ssl; 表示監聽443端口并啟用SSL。ssl_certificate 和 ssl_certificate_key 指定了SSL證書和密鑰的路徑。location / 塊中的 proxy_pass 指令將流量轉發到后端服務器。server 塊用于將HTTP流量重定向到HTTPS。創建一個符號鏈接以啟用配置:
sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
測試Nginx配置是否正確:
sudo nginx -t
如果沒有錯誤,重啟Nginx以應用更改:
sudo systemctl restart nginx
打開瀏覽器并訪問 https://yourdomain.com,確保SSL證書已正確安裝并且流量被正確轉發到后端服務器。
通過這些步驟,你應該能夠在Debian系統上成功配置Nginx以支持SSL終結。