设置 nginx(v1.16.1,OpenSSL 1.1.1)以使用 https。我正在使用 letencrypt 证书 - 带有 RSA 加密的 SHA-256。使用带有 ssllabs 和 observatory 的 TLSv1.2 测试。使用以下行注册加密
ssl_ciphers DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256;
我测试并得到只有 ECDHE 是确定的。尝试了各种组合。
问题是我需要加密才能在 Win 7 和 Win 8.1 上正确使用 IE11,并且在测试时出现错误
“服务器发送致命警报:handshake_failure”
如果您查看 IE11 Win7 支持的证书的相同 ssllabs,则表示支持
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
我正在尝试使用。
如果您指定一堆额外支持的加密,那么一切都会好起来的,但所有其他加密方法都是弱的。
配置:
server {
listen 443 ssl http2;
server_name test.ru;
ssl_protocols TLSv1.2;
ssl_certificate /etc/nginx/conf.d/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/conf.d/ssl/privkey.pem;
ssl_ciphers DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256;
ssl_ecdh_curve secp384r1;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
add_header Strict-Transport-Security "max-age=63072000" always;
location / {
proxy_pass http://192.168.1.2;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_ssl_server_name on;
proxy_ssl_name test.ru;
proxy_set_header Host $http_host;
proxy_pass_header Set-Cookie;
}
可能是什么原因?


仅当具有这些参数的文件在
ssl_dhparam.你可以得到这样的参数:
然后指定一个明确的密码列表:
最好在最后列出没有 EC 的 DHE 密码,因为它们的使用意味着每次建立连接时传输 1 千字节的顺序。
您可以像这样检查密码的选择:
一切准备就绪!
这里有什么问题?
这种显式密码方法有一个缺点:如果将新密码添加到 OpenSSL,则在您更新密码列表之前不会使用它们。此外,使用此密码列表,该站点将无法在 Safari 8 或更早版本中打开。
所以,如果不按照综合测试去追求密码的强度,不牺牲建立连接的速度,那么各种浏览器的兼容性问题就一口气解决了:
此行还解决了支持较新密码的问题。
您可以在本文或团队指南中了解按标签选择过滤器的一般工作原理。