【问题标题】:openjdk11 : Unsupported CipherSuite Exceptionopenjdk11:不支持的 CipherSuite 异常
【发布时间】:2019-09-02 05:26:25
【问题描述】:

我的应用程序正在使用 OpenJDK 11 并失败并出现以下异常:

Caused by: java.lang.IllegalArgumentException: Unsupported CipherSuite: SSL_RSA_WITH_AES_256_CBC_SHA256
        at java.base/sun.security.ssl.CipherSuite.validValuesOf(CipherSuite.java:916)
        at java.base/sun.security.ssl.SSLSocketImpl.setEnabledCipherSuites(SSLSocketImpl.java:302)
        at com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection.makeSocketSecure(RemoteTCPConnection.java:2084)

我没有共享任何代码,因为我认为问题不存在。我需要以某种方式修复此异常。

是否可以配置 JRE 来支持这个特定的 CipherSuite?

【问题讨论】:

    标签: java java-11 openjdk-11


    【解决方案1】:

    在最近的 Java 版本中,通常是 TLS_RSA_... 而不是 SSL_RSA_...,因为 SSLv3 不再安全。

    IBM JRE 可能根据 Configuring your application to use IBM Java or Oracle Java CipherSuite mappings 文档支持 SSL_RSA_WITH_AES_256_CBC_SHA256 密码套件,但这不是 OpenJDK 中的有效常量。

    TLS_RSA_WITH_AES_256_CBC_SHA256 密码套件是根据Java Cryptography Architecture Oracle Providers Documentation for JDK 8 文档在 Java 7 中引入的。在 OpenJDK 中使用此常量。

    【讨论】:

    • 谢谢。这很有用。我这样做了,但遇到了另一个异常:com.ibm.mq.MQException: JMSCMQ0001: IBM MQ call failed with compcode '2' ('MQCC_FAILED') reason '2400' ('MQRC_UNSUPPORTED_CIPHER_SUITE') 我的应用程序需要连接到 IBM MQ。
    • 你应该参考MQ开发指南。它应该告诉您是否可以使用 OpenJDK 运行客户端,或者您是否需要 IBM JRE。
    • 欲望把它留在这里:使用这个jvm选项-Dcom.ibm.mq.cfg.useIBMCipherMappings=false帮助了我。所以TLS_RSA_WITH_AES_256_CBC_SHA256 + -Dcom.ibm.mq.cfg.useIBMCipherMappings=false 工作:)
    • 使用此 jvm.option(在我的 Liberty 服务器根目录中)后,我现在收到错误 RC=2397;AMQ9204: Connection to host '10.60.28.75(1418)' denied。 [1=com.ibm.mq.jmqi.JmqiException[CC=2;RC=2397;AMQ9771:SSL 握手失败。 [1=javax.net.ssl.SSLHandshakeException[PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径],3=10.60.28.75/10.60.28.75:1418我>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多