我正在设置nginx (v1.16.1,OpenSSL 1.1.1)来使用https。我使用的是加密证书- SHA-256和RSA加密。我对ssllab和天文台使用TLSv1.2i测试。规定加密下一行
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”
如果在相同的ssllab中,我看到了IE11 Win7所支持的证书,那么我试图使用的支持就会被指示出来。
LS_DHE_RSA_WITH_AES_256_GCM_SHA384 TLS_DHE_RSA_WITH_AES_128_GCM_SHA256

如果我指定了一组额外支持的加密,那么一切都会很好,但是所有其他加密方法都是弱的。
OpenSSL支持这种类型的密码
$ openssl ciphers -v | grep DHE-RSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(128) Mac=AEAD配置:
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;
}可能是什么原因?
发布于 2019-11-26 21:34:07
您需要设置ssl_dhparam (参见https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_杜帕拉姆),以便DHE密码在nginx上工作。
引用文件:
默认情况下,不设置参数,因此不使用DHE密码。
https://serverfault.com/questions/989619
复制相似问题