2017-09-13 66 views
1

我试图连接到启用了单向SSL的MQIPT。下面是我的Spring配置单向SSL与MQIPT和tomcat docker

<bean id="connectionFactory" 
     class="org.springframework.jms.connection.SingleConnectionFactory"> 
     <property name="targetConnectionFactory"> 
      <ref bean="mqQueueConnectionFactory" /> 
     </property> 
    </bean> 
    <bean id="mqQueueConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory"> 
     <property name="hostName" value="xx.xx.xx.xx" /> 
     <property name="port" value="xxxx" /> 
     <property name="queueManager" value="QM" /> 
     <property name="transportType" value="1" /> 
     <property name="channel" value="SSL.CHNL" /> 
     <property name="SSLCipherSuite" value="SSL_RSA_WITH_AES_256_CBC_SHA"/> 
    </bean> 
    <bean id="destination" class="com.ibm.mq.jms.MQQueue"> 
     <constructor-arg value="SANDBOX_Q" /> 
     <property name="baseQueueManagerName"> 
      <value>QM</value> 
     </property> 
     <property name="baseQueueName"> 
      <value>QUEUE</value> 
     </property> 
    </bean> 

我添加了证书到信任库,并设置标志-Dcom.ibm.mq.cfg.useIBMCipherMappings =假在Tomcat中启动。在MQIPT中,密码套件设置为SSL_RSA_WITH_AES_256_CBC_SHA。我提示以下错误:

MQ Exception:: Uncategorized exception occured during JMS processing; nested exception is com.ibm.msg.client.jms.DetailedJMSException: JMSWMQ0018: Failed to connect to queue manager 'QM' with connection mode 'Client' and host name 'null'. .... Caused by: com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2400' ('MQRC_UNSUPPORTED_CIPHER_SUITE'). 

我使用JDK 8和MQ客户罐子版本8

回答

0

如果您使用的是Oracle JRE,那么你需要指定的IBM每表中的SSLCipherSuite MQ V8知识中心网页“SSL/TLS CipherSpecs and CipherSuites in IBM MQ classes for JMS

CipherSpec     |Equivalent CipherSuite (IBM JRE)|Equivalent CipherSuite (Oracle JRE) 
------------------------------------------------------------------------------------------------- 
TLS_RSA_WITH_AES_256_CBC_SHA| SSL_RSA_WITH_AES_256_CBC_SHA |TLS_RSA_WITH_AES_256_CBC_SHA 

基于上述,如果MQIPT它使用IBM JRE被指定SSL_RSA_WITH_AES_256_CBC_SHA,这意味着在队列管理器的SVRCONN通道应该是指定TLS_RSA_WITH_AES_256_CBC_SHA和Oracle JRE与-Dcom.ibm.mq.cfg.useIBMCipherMappings=false也应指定TLS_RSA_WITH_AES_256_CBC_SHA以及。

总结,改变你的Spring配置文件来:

<property name="SSLCipherSuite" value="TLS_RSA_WITH_AES_256_CBC_SHA"/> 
+0

我试过相同。得到相同的错误 –

+0

@AnilBhaskaran请确认您使用的是Oracle JRE。当您遇到弹簧错误时,您是否在MQIPT的日志中看到任何错误?你使用的是什么特定的v8版本?在8.0.0.2中引入了useIBMCipherMappings设置。 – JoshMc

+0

我无权访问MQIPT日志。将检查。我正在使用tomcat/docker的open-jdk 8。所以你看到任何打开jdk的挑战? –