【问题标题】:Server has a weak ephemeral Diffie-Hellman public ERR_SSL_WEAK_SERVER_EPHEMERAL_DH_KEY on Chrome and Firefox browser服务器在 Chrome 和 Firefox 浏览器上具有弱的短暂 Diffie-Hellman 公共 ERR_SSL_WEAK_SERVER_EPHEMERAL_DH_KEY
【发布时间】:2015-12-05 16:02:19
【问题描述】:

我有一个在 Amazon AMI 上运行的 tomcat 安全 serlet,我已经在 prt 8443 上使用 TLS 协议并使用 .jks 密钥库设置了一个安全连接器:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="150" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" 
           compression="off"
           keystoreFile="\cert\localhost.jks" keystorePass="password"
           />

当我尝试从 Internet 访问 url 时,我收到“ERR_SSL_WEAK_SERVER_EPHEMERAL_DH_KEY”错误。

我在更新 Chrome 45 后开始遇到此错误。现在我使用的是 45.0.2454.85 m Chrome 版本。

有人可以帮我解决这个错误吗?

【问题讨论】:

    标签: google-chrome browser tomcat7


    【解决方案1】:

    找到 Tomcat 的安装路径 (TOMCAT_PATH)。在server.xml中找到SSL HTTP/1.1 Connector的XML定义,在connector中添加如下内容

    ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,  TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,  TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA"/>
    

    为了获得更好的安全性,请删除所有对 RC4 密码的引用。

    从上面的列表中找到所有包含“RC4”的密码,然后将它们从您的列表中删除。 RC4 密码非常陈旧,一些较旧的智能手机和/或代理服务器仍然依赖于 RC4 密码。仍在使用 RC4 的完整列表在这里:https://blog.cloudflare.com/the-web-is-world-wide-or-who-still-needs-rc4/ 为了获得最佳兼容性,请离开 RC4,为了获得最佳安全性,请移除 RC4。

    【讨论】:

    • 感谢@cedric.walter 的回复。我正在考虑继续使用 RC4,但我没有得到确切的配置。
    【解决方案2】:

    过了一会儿得到答案: 我必须像这样在 Tomcat 7 中为我的连接器设置密码:

    <Connector  port="8443" protocol="HTTP/1.1"
                maxThreads="200" SSLEnabled="true"
                scheme="https"  secure="true" disableUploadTimeout="true"
                acceptCount="100"
                clientAuth="false"  sslProtocol="TLS"
                keystoreFile="localhost.jks" keystorePass="password"
                ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
                   TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,
                      TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,
                         TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA"
     />
    

    虽然,Google Chrome 浏览器仍然会告诉我它已弃用的密码。

    【讨论】:

      【解决方案3】:

      要解决此问题,您必须配置与您的 JDK 匹配的密码。请参阅以下链接中的答案https://stackoverflow.com/a/32473771

      【讨论】:

        猜你喜欢
        • 2015-10-30
        • 1970-01-01
        • 2015-12-05
        • 2015-09-05
        • 1970-01-01
        • 2020-11-28
        • 1970-01-01
        • 2019-02-02
        • 2011-10-18
        相关资源
        最近更新 更多