这似乎是一个简单的配置设置,但我无法禁用 TLSv1.1。
nginx.conf在/etc/nginx中:
SSL协议TLSv1.2;
域配置last_nginx.conf(通过 nginxDomainVirtualHost.php 中的 Plesk 模板更改):
ssl_protocols TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/ssl/server.dh_pem;
TLSv1.1 仍然处于启用状态,并且使用 openssl 测试时返回以下内容:
openssl s_client -tls1_1 -connect mydomain.com:443 < /dev/null
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1.1
Cipher : DHE-RSA-AES256-SHA
Session-ID: E298E87276A0776AF736439AF260FE0F92B17330ED97D5F3C2F87CF02C3F75A8
我在这里遗漏了什么?为什么虽然只指定了 TLSv1.2,但 TLSv1.1 仍然启用?
关于如何禁用 TLSv1.1 有什么建议吗?
谢谢!
答案1
这是猜测,因为您没有发布完整(经过净化)的配置,但很可能在多个服务器上使用了共享块。虽然配置语法看起来是可能的,但实际上您无法在共享相同 的块listen
之间使用不同的密码规范。server
listen
进一步来说:
server {
listen 443 ssl;
server_name tls.example.com;
}
server {
listen 443 ssl;
server_name tls12.example.com;
ssl_protocols TLSv1.2;
}
如果您在此处 curl tls12.example.com ,您会发现它支持 1.1。但是,如果您将相同的限制添加到 tls.example.com server
,则仅支持 1.2。
唯一真正的解决办法是使用专用 IP 进行限制,或者确保server
该(ip,端口)组合的所有块具有相同的 SSL 密码设置。
旁注:上述讨论也适用于启用/禁用 HTTP/2。