java中的嵌入式jetty 9.4不支持DSA密码套件

时间:2017-02-17 11:15:05

标签: java jetty dsa

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

有人可以帮我吗?对于DSA码头有什么问题吗?

2 个答案:

答案 0 :(得分:1)

没有必要发送堆栈溢出和github issues(我们注意两者)

对于keytool / keystore中的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,了解如何设置它以满足您的特定需求。

答案 1 :(得分:0)

我在OpenNMS中遇到与嵌入式Jetty类似的问题。Wireshark capture showing Ciphers offered by the browser

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

从Jetty post-start dump:

 |   |   += 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