在Debian上配置Nginx以支持SNI(Server Name Indication)主要涉及以下几个步骤:
安装Nginx: 如果你还没有安装Nginx,可以使用以下命令进行安装:
sudo apt update
sudo apt install nginx
获取SSL证书: 你可以从Let’s Encrypt或其他证书颁发机构获取SSL证书。这里假设你已经有一个SSL证书和私钥文件。
配置Nginx:
编辑Nginx的配置文件,通常位于/etc/nginx/sites-available/
目录下。你可以创建一个新的配置文件或编辑现有的配置文件。
以下是一个示例配置,展示了如何为多个域名配置SSL,并启用SNI:
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /path/to/your/fullchain.pem;
ssl_certificate_key /path/to/your/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /var/www/html/example.com;
index index.html index.htm;
}
}
server {
listen 443 ssl;
server_name example.org www.example.org;
ssl_certificate /path/to/your/fullchain.pem;
ssl_certificate_key /path/to/your/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /var/www/html/example.org;
index index.html index.htm;
}
}
在这个配置中,我们为两个不同的域名example.com
和example.org
配置了SSL证书。每个server
块代表一个独立的虚拟主机,Nginx会根据客户端请求的Host
头来选择合适的虚拟主机。
启用配置:
创建一个符号链接,将配置文件链接到sites-enabled
目录:
sudo ln -s /etc/nginx/sites-available/your-config /etc/nginx/sites-enabled/
测试配置: 在重新加载Nginx之前,先测试配置文件是否有语法错误:
sudo nginx -t
重新加载Nginx: 如果配置文件没有问题,重新加载Nginx以应用更改:
sudo systemctl reload nginx
验证SNI支持:
你可以使用openssl
命令来验证Nginx是否正确支持SNI:
openssl s_client -connect example.com:443 -servername example.com
如果配置正确,你应该能够看到SSL握手成功的信息。
通过以上步骤,你就可以在Debian上配置Nginx以支持SNI,并为多个域名提供SSL加密服务。