Firefox v39将不再通过HTTPS连接到我的web应用程序。我使用的是带有嵌入式Tomcat的Spring Boot,并确保使用的是最新版本的Boot(v1.2.5)。Firefox显示以下错误消息:
安全连接失败
连接到[网站]时出错。SSL在服务器密钥交换握手消息中接收到弱的临时Diffie-Hellman密钥。(错误代码:ssl_Error_weak_server_ephemeral_dh_key)
我知道这是为了防止已知的漏洞
Logjam
。Tomcat的解决方案在
weakdh.org
.
Spring Boot通过
application.properties
因此,我补充了
server.ssl.ciphers
我的申请。属性如下:
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证书吗?