【问题标题】:DSA cipher suites not supported by embedded jetty 9.4 in javaJava 中的嵌入式 jetty 9.4 不支持 DSA 密码套件
【发布时间】:2017-02-17 11:15:05
【问题描述】:

我使用的是最新的 jetty 和 jdk,它应该支持像 TLS_DHE_DSS 这样的 DSA 密码套件......所以我使用 DSA 算法生成了一个证书文件和密钥对,将其上传到我的服务器,然后重新启动了我的服务器,服务器启动成功。但在那之后,我无法使用任何浏览器打开该服务器的任何页面。我看到的只是页面上的一条错误消息:ERR_SSL_VERSION_OR_CIPHER_MISMATCH。

谁能帮我解决这个问题? DSA 的码头有什么问题吗?

【问题讨论】:

    标签: java jetty dsa


    【解决方案1】:

    向 stackoverflow 和 github issues 发送垃圾邮件是没有意义的(我们同时关注两者)

    就密钥工具/密钥库中的 DSA 而言,您不能将其用于 SSL/TLS(Jetty、Java 甚至各种 SSL/TLS 协议版本本身都不支持。DSA 只是一种签名/验证算法,它不用于 SSL/TLS 所需的加密/解密/密钥交换)。

    对密钥库使用 RSA 并指定 SHA256 算法(或更高)和 4096(或更高)的位大小。

    转储你的创业公司,看看为什么你感兴趣的密码被禁用。

    $ cd /path/to/my/jettybase
    $ java -jar /path/to/jetty-dist/start.jar jetty.server.dumpAfterStart=true
    

    查找SslContextFactory 树和Cipher Suites 分支。 Disabled 部分将列出每个禁用的密码套件,并指出该特定密码套件的禁用位置。

    你会看到...

    • JreDisabled 这意味着 JVM 本身已禁用它。
    • ConfigExcluded 这意味着您的 ${jetty.base} 配置已禁用它。

    无论哪种方式,您都需要查看文档中的 Enabling / Disabling Specific Cipher Suites 以了解如何设置它以满足您的特定需求。

    【讨论】:

      【解决方案2】:

      OpenNMS 中的嵌入式 Jetty 也有类似的问题。Wireshark capture showing Ciphers offered by the browser

      据我所知,在浏览器提供的内容和 Jetty 支持的内容之间存在多种通用密码和 TLS 版本,但 Jetty 拒绝与上述密码不匹配错误消息的连接。所有三个主要浏览器似乎都因致命的 Hanshake (TLS1.2) 故障而同样失败。但是,使用非 FQDN 主机名创建主机/域名不匹配允许用户设置站点异常和 TLS 以使用 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 和 TLS v1.2 “成功”。因此,密码似乎不是问题。握手中的其他内容导致 Jetty 失败,浏览器将响应误解为密码不匹配。

      来自 Jetty 启动后转储:

       |   |   += SslContextFactory@629464ad(file:///opt/opennms/etc/jetty.keystore,file:///opt/opennms/etc/jetty.keystore) trustAll=false
       |   |   |   +- Protocol Selections
       |   |   |   |   +- Enabled (size=3)
       |   |   |   |   |   +- TLSv1
       |   |   |   |   |   +- TLSv1.1
       |   |   |   |   |   +- TLSv1.2
       |   |   |   |   +- Disabled (size=2)
       |   |   |   |       +- SSLv2Hello - ConfigExcluded:'SSLv2Hello'
       |   |   |   |       +- SSLv3 - JreDisabled:java.security, ConfigExcluded:'SSLv3'
       |   |   |   +- Cipher Suite Selections
       |   |   |       +- Enabled (size=42)
       |   |   |       |   +- TLS_DHE_DSS_WITH_AES_128_CBC_SHA
       |   |   |       |   +- TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
       |   |   |       |   +- TLS_DHE_DSS_WITH_AES_128_GCM_SHA256
       |   |   |       |   +- TLS_DHE_DSS_WITH_AES_256_CBC_SHA
       |   |   |       |   +- TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
       |   |   |       |   +- TLS_DHE_DSS_WITH_AES_256_GCM_SHA384
       |   |   |       |   +- TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
       |   |   |       |   +- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
       |   |   |       |   +- TLS_DHE_RSA_WITH_AES_256_CBC_SHA
       |   |   |       |   +- TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
       |   |   |       |   +- TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
       |   |   |       |   +- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
       |   |   |       |   +- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
       |   |   |       |   +- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
       |   |   |       |   +- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
       |   |   |       |   +- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
       |   |   |       |   +- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
       |   |   |       |   +- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
       |   |   |       |   +- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
       |   |   |       |   +- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
       |   |   |       |   +- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
       |   |   |       |   +- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
       |   |   |       |   +- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
       |   |   |       |   +- TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
       |   |   |       |   +- TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
       |   |   |       |   +- TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
       |   |   |       |   +- TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
       |   |   |       |   +- TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
       |   |   |       |   +- TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
       |   |   |       |   +- TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
       |   |   |       |   +- TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
       |   |   |       |   +- TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
       |   |   |       |   +- TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
       |   |   |       |   +- TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
       |   |   |       |   +- TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
       |   |   |       |   +- TLS_EMPTY_RENEGOTIATION_INFO_SCSV
       |   |   |       |   +- TLS_RSA_WITH_AES_128_CBC_SHA
       |   |   |       |   +- TLS_RSA_WITH_AES_128_CBC_SHA256
       |   |   |       |   +- TLS_RSA_WITH_AES_128_GCM_SHA256
       |   |   |       |   +- TLS_RSA_WITH_AES_256_CBC_SHA
       |   |   |       |   +- TLS_RSA_WITH_AES_256_CBC_SHA256
      

      【讨论】:

        猜你喜欢
        • 2020-05-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-13
        • 2020-03-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多