在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证书路径和其他相关设置。