Los*_*ost 7 ssl configuration nginx tls
我想弄清楚如何禁用 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;
Run Code Online (Sandbox Code Playgroud)
但出于某种原因,Nginx 仍在协商 1.0 和 1.1 连接。难道我做错了什么?我在 Ubuntu Server 14.04LTS 和 OpenSSL 1.0.1f 上使用 Nginx 1.7.10。
来自nginx指令的文档ssl_protocols:
从版本 1.1.13 和 1.0.12 开始支持 TLSv1.1 和 TLSv1.2 参数,因此当在较旧的 nginx 版本上使用 OpenSSL 版本 1.0.1 或更高版本时,这些协议可以工作,但无法禁用。
在较新的版本上,可以使用openssl以下命令进行验证:
openssl s_client -tls1_2 -connect example.org:443 < /dev/nullopenssl s_client -tls1_1 -connect example.org:443 < /dev/nullopenssl s_client -tls1 -connect example.org:443 < /dev/null如果 nginx 配置仅包含ssl_protocols TLSv1.2指令,则仅支持 TLSv1.2。如果ssl_protocols TLSv1.1 and TLSv1.2配置,则仅支持 TLSv1.1 和 TLSv1.2。使用openssl 1.0.1e和进行测试nginx 1.6.2。
| 归档时间: |
|
| 查看次数: |
14089 次 |
| 最近记录: |