我试图弄清楚如何禁用TLSv1和1.1 Nginx,并且只允许1.2上的连接.这是出于测试原因而不是生产使用,对于我的生活无法弄清楚为什么Nginx不会让我这样做.
Nginx SSL配置:
ssl on;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM256:DH+AESGCM256:ECDH+AES256:!aNULL:!MD5:!kEDH;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=262974383; includeSubdomains;";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
但由于某些原因,Nginx仍在谈判1.0和1.1连接.难道我做错了什么?我在Ubuntu Server 14.04LTS上使用Nginx 1.7.10和OpenSSL 1.0.1f.
The TLSv1.1 and TLSv1.2 parameters are supported starting from versions 1.1.13 and 1.0.12,so when the OpenSSL version 1.0.1 or higher is used on older Nginx versions,these protocols work,but cannot be disabled.`
在较新的版本中,可以使用openssl命令验证,如下所示:
>验证是否支持TLS v1.2:openssl s_client -tls1_2 -connect example.org:443<的/ dev / null的
>验证不支持TLS v1.1:openssl s_client -tls1_1 -connect example.org:443<的/ dev / null的
>验证不支持TLS v1.0:openssl s_client -tls1 -connect example.org:443<的/ dev / null的
如果Nginx配置仅包含ssl_protocols TLSv1.2指令,则仅支持TLSv1.2.如果配置了ssl_protocols TLSv1.1和TLSv1.2,则仅支持TLSv1.1和TLSv1.2.使用openssl 1.0.1e和Nginx 1.6.2进行测试.