openjdk11:不支持的CipherSuite异常

joh*_*ohn 2 java java-11 openjdk-11

我的应用程序正在使用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)
Run Code Online (Sandbox Code Playgroud)

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

是否可以将JRE配置为支持此特定CipherSuite?

Kar*_*cki 5

由于SSLv3不再安全,TLS_RSA_...因此SSL_RSA_...在最近的Java版本中通常不可用。

IBM JRE可能SSL_RSA_WITH_AES_256_CBC_SHA256根据配置应用程序以使用IBM Java或Oracle Java CipherSuite映射文档支持密码套件,但这在OpenJDK中不是有效的常量。

TLS_RSA_WITH_AES_256_CBC_SHA256密码套件是在Java 7中引入每对JDK 8 Java加密架构Oracle提供商文档的文档。在OpenJDK中使用此常量。

  • 您应该参考MQ开发指南。它应该告诉您是否可以使用OpenJDK运行客户端,或者是否需要IBM JRE。 (2认同)
  • 留在这里:使用这个 jvm 选项 `-Dcom.ibm.mq.cfg.useIBMCipherMappings=false` 帮助了我。所以`TLS_RSA_WITH_AES_256_CBC_SHA256` + `-Dcom.ibm.mq.cfg.useIBMCipherMappings=false` 有效:) (2认同)