【发布时间】:2015-08-07 11:53:31
【问题描述】:
Firefox v39 将不再通过 HTTPS 连接到我的 Web 应用程序。我正在使用带有嵌入式 Tomcat 的 Spring Boot,并确保我使用的是最新版本的 Boot (v1.2.5)。 Firefox 显示以下错误消息:
安全连接失败
连接到 [网站] 时出错。 SSL 在服务器密钥交换握手消息中收到了一个较弱的临时 Diffie-Hellman 密钥。 (错误代码:ssl_error_weak_server_ephemeral_dh_key)
我知道这是为了防止一个名为Logjam 的已知漏洞。 weakdh.org 提供了 Tomcat 的解决方案。
Spring Boot 通过 application.properties 将 SSL 配置传递给 Tomcat,因此我已将 server.ssl.ciphers 添加到我的 application.properties 中,如下所示:
server.port=443
server.ssl.key-store=/home/ec2-user/boot.p12
server.ssl.key-store-password=...
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=...
server.ssl.ciphers=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_DSS_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_SHA256,TLS_ECDHE_RSA_WITH_AES_128_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_SHA,TLS_ECDHE_RSA_WITH_AES_256_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_SHA384,TLS_ECDHE_RSA_WITH_AES_256_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_SHA,TLS_DHE_RSA_WITH_AES_128_SHA256,TLS_DHE_RSA_WITH_AES_128_SHA,TLS_DHE_DSS_WITH_AES_128_SHA256,TLS_DHE_RSA_WITH_AES_256_SHA256,TLS_DHE_DSS_WITH_AES_256_SHA,TLS_DHE_RSA_WITH_AES_256_SHA
重启启动后,我在日志文件中注意到以下内容:
WARN 2674 [main] --- o.a.t.util.net.jsse.JSSESocketFactory : None of the ciphers specified are supported by the SSL engine : TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, ...
此外,使用 Firefox 连接失败并显示以下消息:
安全连接失败
在加载页面时,与 [网站] 的连接中断。
我在日志文件中看到以下内容:
javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
很遗憾,我不是加密专家。谁能建议如何解决这个问题?我需要重新创建我的 HTTPS 证书吗?
【问题讨论】:
-
是的 - 您需要更新证书。
标签: spring security ssl https spring-boot