代码之家  ›  专栏  ›  技术社区  ›  Adam

配置Spring Boot以防止Logjam攻击

  •  3
  • Adam  · 技术社区  · 10 年前

    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证书吗?

    1 回复  |  直到 8 年前
        1
  •  2
  •   Adam    10 年前

    解决方案是将服务器上的服务器Java从1.7升级到1.8。

    • sudo yum remove java-1.7.0-openjdk
    • sudo yum install java-1.8.0

    完成后,无需进行其他配置。甚至没有按照weakdh.org的建议修改Tomcat。