如何在 nginx 中将 ssl 密码添加到 ssl_ciphers
Posted
技术标签:
【中文标题】如何在 nginx 中将 ssl 密码添加到 ssl_ciphers【英文标题】:How to add ssl cipher to ssl_ciphers in nginx 【发布时间】:2017-11-08 02:15:56 【问题描述】:我正在使用 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 列表中。
有可能吗?怎么做?
【问题讨论】:
【参考方案1】:从OpenSSL's cipher list 或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";
【讨论】:
以上是关于如何在 nginx 中将 ssl 密码添加到 ssl_ciphers的主要内容,如果未能解决你的问题,请参考以下文章