我在 Debian Squeeze 上使用 nginx 1.2.7 和 OpenSSL 0.9.8o 大约 30 个域。我在其中两个上启用了 SSL,这两个都可以正常工作。
SSL 配置用于两个域:
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/example.org-unified.crt;
ssl_certificate_key /etc/nginx/ssl/example.org.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security max-age=600000;
Run Code Online (Sandbox Code Playgroud)
使用 ssllabs.com 检查器检查两个域我得到一个域的通知“此站点仅适用于支持 SNI 的浏览器。”。对于其他域,我没有收到此消息。默认情况下,nginx 似乎将按字母顺序排列的第一个域的证书发送给没有 SNI 支持的客户端。我可以改变这种行为吗?
换句话说:我想将 nginx 配置为具有 SSL 的特定域,即使对于没有 SNI 支持的客户端也是如此。其他域也应该与 SSL 一起使用,但如果它仅适用于启用了 SNI 的客户端也可以。
谢谢!
Sha*_*den 20
该指令的default_server
设置listen
应确定为未在握手中设置 SNI 的请求发送哪个证书。更改listen
所需默认值的指令:
listen 443 default_server ssl;
Run Code Online (Sandbox Code Playgroud)