要在Nginx中配置多个SSL证书,需要遵循以下步骤:
1. 为每个域名生成一个SSL证书和私钥。
可以使用Let's Encrypt等免费证书颁发机构,或者购买商业证书。
2. 在Nginx配置文件中为每个域名创建一个server块,并在其中指定SSL证书和私钥的路径。
例如:
```
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/example.com.crt;
ssl_certificate_key /path/to/example.com.key;
...
}
server {
listen 443 ssl;
server_name example2.com;
ssl_certificate /path/to/example2.com.crt;
ssl_certificate_key /path/to/example2.com.key;
...
}
```
3. 如果您的服务器有多个IP地址,则可以将每个域名绑定到不同的IP地址上。
例如:
```
server {
listen 192.168.1.1:443 ssl;
server_name example.com;
ssl_certificate /path/to/example.com.crt;
ssl_certificate_key /path/to/example.com.key;
...
}
server {
listen 192.168.1.2:443 ssl;
server_name example2.com;
ssl_certificate /path/to/example2.com.crt;
ssl_certificate_key /path/to/example2.com.key;
...
}
```
4. 如果您的服务器只有一个IP地址,则可以使用SNI(Server Name Indication)来区分不同的域名。
SNI是TLS协议的扩展,允许客户端在SSL握手期间指定要连接的域名。
要启用SNI,请确保您的Nginx版本支持它,并在配置文件中添加以下指令:
```
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/example.com.crt;
ssl_certificate_key /path/to/example.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8;
...
}
```
5. 保存配置文件并重新加载Nginx。
您现在应该能够使用多个SSL证书来保护不同的域名。