2017-09-13 50 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的挑戰? –