我的应用正在使用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?
答案 0 :(得分:4)
由于SSLv3不再安全,因此在最近的Java版本中通常TLS_RSA_...
而不是SSL_RSA_...
。
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中使用此常量。