dh serverkeyexchange不符合算法约束

zy1mlcev  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(695)

我们最近升级了一个工具(使用java实现),现在很难连接到我们公司的一个内部端点。对于其他端点,它可以正常工作。假设它不工作的端点是xyz..com我们每次看到的错误是

javax.net.ssl.SSLHandshakeException: DH ServerKeyExchange does not comply to algorithm constraints
        at sun.security.ssl.Alert.createSSLException(Alert.java:131)
        at sun.security.ssl.Alert.createSSLException(Alert.java:117)
        at sun.security.ssl.TransportContext.fatal(TransportContext.java:311)
        at sun.security.ssl.TransportContext.fatal(TransportContext.java:267)
        at sun.security.ssl.TransportContext.fatal(TransportContext.java:258)
        at sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeConsumer.consume(DHServerKeyExchange.java:540)
        at sun.security.ssl.ServerKeyExchange$ServerKeyExchangeConsumer.consume(ServerKeyExchange.java:111)
        at sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:377)
        at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:444)
        at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:422)
        at sun.security.ssl.TransportContext.dispatch(TransportContext.java:182)
        at sun.security.ssl.SSLTransport.decode(SSLTransport.java:149)
        at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1143)
        at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1054)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:394)
        at sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:708)
        at sun.security.ssl.SSLSocketImpl.access$100(SSLSocketImpl.java:72)
        at sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:961)
        at sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:933)

我遵循以下建议:-
“原因:dhpublickey不符合算法约束”是什么意思?
然而,这似乎不起作用。
因为这个问题现在只在我们升级了这个工具之后才普遍存在,我们想知道这是否是因为新的jvm安全限制被强制执行,我们是否可以将任何内容作为jvm参数传递,或者只是在java.security文件下或其他地方进行修改以修复此恼人的错误。我们不想更改该端点使用的证书的任何内容。我是一个新手在密码学,因此任何帮助或建议在这里将不胜感激。

rta7y2nd

rta7y2nd1#

我可以通过修改java加密策略来解决这个问题:-

jdk.tls.ephemeralDHKeySize=1024
jdk.certpath.disabledAlgorithms=MD2, MD5, DSA, RSA keySize < 2048
jdk.tls.disabledAlgorithms=DH keySize < 1024, SSLv2, SSLv3, TLSv1, TLSv1.1, DHE_DSS, RSA_EXPORT, DHE_DSS_EXPORT, DHE_RSA_EXPORT, DH_DSS_EXPORT, DH_RSA_EXPORT, DH_anon, ECDH_anon, DH_RSA, DH_DSS, ECDH, 3DES_EDE_CBC, DES_CBC, RC4_40, RC4_128, DES40_CBC, RC2, HmacMD5
jdk.tls.legacyAlgorithms=

对于dhkeysize,我不得不将2048替换为1024

相关问题