在Debian上配置Nginx以支持SSL SNI(Server Name Indication)是一個相對簡單的過程。SNI允許你在同一個IP地址和端口上托管多個SSL證書,每個證書對應不同的域名。以下是詳細步驟:
首先,確保你已經安裝了Nginx。如果沒有安裝,可以使用以下命令進行安裝:
sudo apt update
sudo apt install nginx
你需要為每個域名獲取SSL證書??梢允褂肔et’s Encrypt免費獲取證書:
sudo apt install certbot python3-certbot-nginx
然后,使用Certbot獲取證書:
sudo certbot --nginx -d example.com -d www.example.com
按照提示完成證書的獲取和配置。
Certbot會自動為你生成Nginx配置文件,通常位于/etc/nginx/sites-available/
目錄下。你需要確保這些配置文件正確地啟用了SSL,并且包含了SNI支持。
以下是一個示例配置文件:
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location / {
root /var/www/html;
index index.html index.htm;
}
}
確保你的站點配置文件已經鏈接到sites-enabled
目錄:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
在重新加載Nginx之前,測試配置文件是否有語法錯誤:
sudo nginx -t
如果沒有錯誤,重新加載Nginx以應用更改:
sudo systemctl reload nginx
你可以使用瀏覽器訪問你的網站,或者使用curl
命令來驗證SNI是否正常工作:
curl -I https://example.com
你應該能夠看到SSL握手成功,并且服務器返回正確的證書。
如果你需要添加更多站點,只需為每個站點創建一個新的配置文件,并按照上述步驟進行配置和啟用。
通過以上步驟,你就可以在Debian上成功配置Nginx以支持SSL SNI。