在Debian上配置Nginx以支持多個SSL證書(即多域名SSL)涉及幾個步驟。以下是一個詳細的指南:
首先,確保你已經安裝了Nginx。如果沒有安裝,可以使用以下命令進行安裝:
sudo apt update
sudo apt install nginx
你可以從Let’s Encrypt或其他證書頒發機構獲取SSL證書。這里以Let’s Encrypt為例:
sudo apt install certbot python3-certbot-nginx
你需要為每個域名創建一個單獨的server塊。以下是一個示例配置:
server {
listen 443 ssl;
server_name example1.com www.example1.com;
ssl_certificate /etc/letsencrypt/live/example1.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example1.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
root /var/www/example1.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
server {
listen 443 ssl;
server_name example2.com www.example2.com;
ssl_certificate /etc/letsencrypt/live/example2.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example2.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
root /var/www/example2.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
在重新加載Nginx之前,先測試配置文件是否有語法錯誤:
sudo nginx -t
如果配置文件沒有問題,重新加載Nginx以應用更改:
sudo systemctl reload nginx
Let’s Encrypt證書通常有效期為90天。你可以設置一個cron作業來自動續期證書:
sudo crontab -e
添加以下行:
0 0,12 * * * certbot renew --post-hook "systemctl reload nginx"
這將在每天午夜和中午檢查證書是否需要續期,并在續期后重新加載Nginx。
通過以上步驟,你可以在Debian上配置Nginx以支持多個SSL證書。每個域名都需要一個單獨的server塊,并且需要正確配置SSL證書路徑和其他相關設置。