Spring boot 无法连接到MQ Spring启动SSL

Spring boot 无法连接到MQ Spring启动SSL,spring-boot,ssl,ibm-mq,Spring Boot,Ssl,Ibm Mq,我正在尝试建立到MQ服务的连接 对于SSL连接,我使用以下命令 -Djavax.net.ssl.trustStore=/opt/app/key.jks" -Djavax.net.ssl.trustStorePassword=111111 Appliction.properties配置 ibm.mq.connName=10.20.31.25(1414) ibm.mq.channel=OIV.CHAN ibm.mq.queueManager=OIV ibm.mq.user=TEST i

我正在尝试建立到MQ服务的连接

对于SSL连接,我使用以下命令

-Djavax.net.ssl.trustStore=/opt/app/key.jks" 
-Djavax.net.ssl.trustStorePassword=111111
Appliction.properties配置

ibm.mq.connName=10.20.31.25(1414)
ibm.mq.channel=OIV.CHAN
ibm.mq.queueManager=OIV
ibm.mq.user=TEST
ibm.mq.password=passw0rd
ibm.mq.ssl-cipher-spec=TLS_RSA_WITH_AES_256_CBC_SHA
当应用程序启动时,一切正常

 INFO  IbmJmsConfiguration - Initializing SSL context: 
protocol=TLSv1.2, keyStore=null, trustStore=/opt/app/key.jks

 INFO  IbmJmsConfiguration - SSL context initialized: 
keyManagers item(s) = 0, trustManagers item(s) = 1
但是当向MQ发出请求时,我得到一个错误

Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2393;AMQ9771: SSL handshake failed. [1=java.lang.IllegalArgumentException[Unsupported ciphersuite SSL_RSA_WITH_AES_256_CBC_SHA256]
文本错误

    Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2393;AMQ9771: SSL handshake 
    failed. [1=java.lang.IllegalArgumentException[Unsupported ciphersuite 
    SSL_RSA_WITH_AES_256_CBC_SHA],3=10.90.51.15/10.90.50.15:1414 
    (10.96.51.15),4=SSLSocket.createSocket,5=default]
    at com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection.makeSocketSecure(RemoteTCPConnection.java:2360)
 at com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection.bindAndConnectSocket(RemoteTCPConnection.java:816)
 at com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection.protocolConnect(RemoteTCPConnection.java:1381)
 at com.ibm.mq.jmqi.remote.impl.RemoteConnection.connect(RemoteConnection.java:976)
 at com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getNewConnection(RemoteConnectionSpecification.java:553)
 at com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getSessionFromNewConnection(RemoteConnectionSpecification.java:233)
at com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getSession(RemoteConnectionSpecification.java:141)
 at com.ibm.mq.jmqi.remote.impl.RemoteConnectionPool.getSession(RemoteConnectionPool.java:127)
 at com.ibm.mq.jmqi.remote.api.RemoteFAP$Connector.jmqiConnect(RemoteFAP.java:13302)
 ... 74 common frames omitted
Caused by: java.lang.IllegalArgumentException: Unsupported ciphersuite SSL_RSA_WITH_AES_256_CBC_SHA
 at sun.security.ssl.CipherSuite.valueOf(CipherSuite.java:228)
 at sun.security.ssl.CipherSuiteList.<init>(CipherSuiteList.java:79)
 at sun.security.ssl.SSLSocketImpl.setEnabledCipherSuites(SSLSocketImpl.java:2491)
 at com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection.makeSocketSecure(RemoteTCPConnection.java:2351)
 ... 82 common frames omitted
原因:com.ibm.mq.jmqi.jmqi异常:CC=2;RC=2393;AMQ9771:SSL握手
失败。[1=java.lang.IllegalArgumentException[不支持的密码套件]
SSL_RSA_与_AES_256_CBC_SHA],3=10.90.51.15/10.90.50.15:1414
(10.96.51.15),4=SSLSocket.createSocket,5=default]
在com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection.makeSocketSecure(RemoteTCPConnection.java:2360)
位于com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection.bindAndConnectSocket(RemoteTCPConnection.java:816)
位于com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection.protocolConnect(RemoteTCPConnection.java:1381)
位于com.ibm.mq.jmqi.remote.impl.RemoteConnection.connect(RemoteConnection.java:976)
在com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getNewConnection(RemoteConnectionSpecification.java:553)上
位于com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getSessionFromNewConnection(RemoteConnectionSpecification.java:233)
位于com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getSession(RemoteConnectionSpecification.java:141)
位于com.ibm.mq.jmqi.remote.impl.RemoteConnectionPool.getSession(RemoteConnectionPool.java:127)
位于com.ibm.mq.jmqi.remote.api.RemoteFAP$Connector.jmqiConnect(RemoteFAP.java:13302)
... 省略了74个公共框架
原因:java.lang.IllegalArgumentException:不支持的密码套件SSL\u RSA\u和\u AES\u 256\u CBC\u SHA
位于sun.security.ssl.CipherSuite.valueOf(CipherSuite.java:228)
位于sun.security.ssl.CipherSuiteList。(CipherSuiteList.java:79)
位于sun.security.ssl.SSLSocketImpl.setEnablediPhone套件(SSLSocketImpl.java:2491)
位于com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection.makeSocketSecure(RemoteTCPConnection.java:2351)
... 省略了82个公共帧

如果您没有使用IBM Java,那么您需要以下Java系统属性:
com.IBM.mq.cfg.useIBMCipherMappings=false
。注意,您的配置列出了TLS\U RSA\U和AES\U 256\U CBC\U SHA,这是一个Oracle java TLS1.0密码套件。错误列出了SSL\U RSA\U和AES\U 256\U CBC\U SHA256,这是一个IBM TLS1.2密码套件。您能否确认您实际指定的内容以及
java-version
的输出是什么。还有,您的jar文件来自哪个版本?1)我有它的propery com.IBM.MQ.cfg.useIBMCipherMappings=false 2)TLS_RSA_WITH_AES_256_CBC_SHA它的TLS 1.2 3)java版本“1.8.0_271;”4)我的jar,gradle:com.IBM.MQ.allclient9.1.2.0和MQ-jms-spring-bootstarter 2.1.2可以用正确的配置更新您的问题吗,目前显示的是TLS1.0密码套件。此外,错误显示
不受支持的密码套件SSL\u RSA\u和\u AES\u 256\u CBC\u SHA256
,这表示正在从您的配置中更改密码套件,除非此错误来自您尝试该值的时间。感谢您的回答。我需要TLS1.2。我的配置在TLS1上显示了什么。0? 是的,出于某种原因,我指定了TLS_RSA_和_AES_256_CBC_SHA,在一个错误中,另一个
TLS_RSA_和_AES_256_CBC_SHA
是IBM MQ中的TLS1.0,请参阅此知识中心。尝试使用带有AES的TLS\U RSA\U 256\U CBC\U SHA256而不是TLS1.2密码套件。