要在 nginx 代理中设置 TLS 协议扩展 SNI,需要进行以下配置:
安装 OpenSSL 库。
配置 SSL 证书和私钥。可以使用自签名证书或购买证书。
在 nginx 的配置文件中,添加以下代码段:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/ssl/certificate.crt;
ssl_certificate_key /path/to/ssl/privatekey.key;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
add_header Strict-Transport-Security max-age=15768000;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
ssl_stapling on;
ssl_stapling_verify on;
}
其中,server_name
指定域名,ssl_certificate
和 ssl_certificate_key
分别指定证书和私钥的路径,proxy_pass
指定反向代理的后端服务器地址。
- 重启 nginx 服务。
注意:在配置时要确保 OpenSSL 库版本是 1.0.2 或更高版本。如果使用的是旧版 OpenSSL 库,可能会出现兼容性问题。