如何在nginx中将ssl密码添加到ssl_ciphers

How to add ssl cipher to ssl_ciphers in nginx

我正在使用 Let's Encrypt 在我的服务器中安装一个免费的 TLS/SSL 证书。我听从了 Mozilla SSL Configuration Generator 的建议并像这样配置了 nginx:

ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";

问题是我需要 Java 7 才能与服务器通信,但它不适用于上面的配置。

当我将网站提交到 ssllabs 时,我收到以下消息:

Java 7u25   Server sent fatal alert: handshake_failure

如果我只是在 nginx 配置中注释 ssl_ciphers 行,那么与 Java 7 的通信开始工作。

# After commenting the line below it works
# ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";

所以我从 ssllabs 收到以下消息:

Java 7u25   RSA 2048 (SHA256)   TLS 1.0 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

我不想让 ssl_ciphers 行被注释掉,因为 nginx 会使用它的默认配置,这不太安全。

我只想将密码 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 添加到 ssl_ciphers 列表中。

可能吗?怎么做?

OpenSSL's cipher list or this nice table from testssl.sh开始,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA对应ECDHE-RSA-AES128-SHA。所以你将 ssl_ciphers 指令设置为

ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES128-SHA";