debian

Nginx SSL在Debian上如何配置多域名

小樊
37
2025-08-26 14:29:53
栏目: 云计算

在Debian上配置Nginx以支持多个SSL证书(即多域名SSL)涉及几个步骤。以下是一个详细的指南:

1. 安装Nginx

首先,确保你已经安装了Nginx。如果没有安装,可以使用以下命令进行安装:

sudo apt update
sudo apt install nginx

2. 获取SSL证书

你可以从Let’s Encrypt或其他证书颁发机构获取SSL证书。这里以Let’s Encrypt为例:

sudo apt install certbot python3-certbot-nginx

3. 配置Nginx

你需要为每个域名创建一个单独的server块。以下是一个示例配置:

域名1:example1.com

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;
    }
}

域名2:example2.com

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;
    }
}

4. 测试配置

在重新加载Nginx之前,先测试配置文件是否有语法错误:

sudo nginx -t

5. 重新加载Nginx

如果配置文件没有问题,重新加载Nginx以应用更改:

sudo systemctl reload nginx

6. 自动续期证书

Let’s Encrypt证书通常有效期为90天。你可以设置一个cron作业来自动续期证书:

sudo crontab -e

添加以下行:

0 0,12 * * * certbot renew --post-hook "systemctl reload nginx"

这将在每天午夜和中午检查证书是否需要续期,并在续期后重新加载Nginx。

总结

通过以上步骤,你可以在Debian上配置Nginx以支持多个SSL证书。每个域名都需要一个单独的server块,并且需要正确配置SSL证书路径和其他相关设置。

0
看了该问题的人还看了