2013-05-13 209 views
3

我嘗試從WebSphere應用服務器上啓動的簡單Web服務連接到WMQ。在Websphere App Server和Websphere MQ之間配置SSL

在WMQ上,我有SSL通道。我現在使用自簽名證書。

在glassfish的情況下,我只是將此證書添加到域中的密鑰存儲區,並且所有工作都很好(因爲我配置了我的MQQueueConnectionFactory)。

但在WebSphere這招不起作用:

[5/13/13 14:00:25:058 FET] 00000060 SystemOut  O %% Invalidated: [Session-94, SSL_RSA_EXPORT_WITH_RC4_40_MD5] 
[5/13/13 14:00:25:058 FET] 00000060 SystemOut  O jmsContainer-1, SEND SSLv3 ALERT: fatal, description = certificate_unknown 
[5/13/13 14:00:25:058 FET] 00000060 SystemOut  O jmsContainer-1, WRITE: SSLv3 Alert, length = 2 
[5/13/13 14:00:25:058 FET] 00000060 SystemOut  O [Raw write]: length = 7 
[5/13/13 14:00:25:058 FET] 00000060 SystemOut  O 0000: 15 03 00 00 02 02 2e        ....... 

[5/13/13 14:00:25:058 FET] 00000060 SystemOut  O jmsContainer-1, called closeSocket() 
[5/13/13 14:00:25:058 FET] 00000060 SystemOut  O jmsContainer-1, handling exception: javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.j: PKIX path building failed: java.security.cert.CertPathBuilderException: unable to find valid certification path to requested target 
[5/13/13 14:00:25:058 FET] 00000060 DefaultMessag E org.springframework.jms.listener.DefaultMessageListenerContainer refreshConnectionUntilSuccessful Could not refresh JMS Connection for destination 'fromESB' - retrying in 5000 ms. Cause: JMSWMQ0018: Failed to connect to queue manager 'qm1' with connection mode 'Client' and host name '192.168.56.101(1414)'.; nested exception is com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2397' ('MQRC_JSSE_ERROR'). 

如何配置WebSphere應用服務器使用SSL(如何添加服務器(WMQ)證書信任存儲或者是信任存儲? ?)?

回答

3

好的。我自己解決這個問題。

配置WMQ:

  1. 創建密鑰庫

    runmqckm -keydb -create -db 「C:\ dev的\ sslqm001 \ sslqm001.kdb」 -pw serverpass型CMS -expire 365 -stash

  2. 創建證書,並把它添加到密鑰存儲

    runmqckm -cer t -create -db「c:\ dev \ sslqm001 \ sslqm001.kdb」-pw serverpass -label ibmwebspheremqssl_qm001 -dn「CN = SSL_QM001,OU = IT,O = SomeCompany,L =明斯克,ST =白俄羅斯,C = BY「-expire 365

  3. 將此證書從密鑰庫導出到文件。

    runmqckm -cert -extract -db 「C:\ dev的\ sslqm001 \ sslqm001.kdb」 -pw serverpass -label ibmwebspheremqssl_qm001 -target SSL_QM001.crt -format ASCII

  4. 在隊列管理器設置,選項卡「 SSL「設置到密鑰庫的路徑,而不需要。KDB和FIPS爲否:

    ALTER QMGR SSLKEYR( 'C:\ dev的\ sslqm001 \ sslqm001') ALTER QMGR SSLFIPS(NO)

  5. 創建新信道

  6. 在信道設置,標籤 「SSL」 設置密碼爲某個值(與我的作品:DES_SHA_EXPORT),並權威性與可選

    DEFINE CHANNEL( 'SSL_CHANNEL')CHLTYPE(SVRCONN)TRPTYPE(TCP)SSLCIPH(DES_SHA_EXPORT)SSLCAUTH(可選)REPLACE

  7. 在隊列管理器刷新SSL:

    REFRESH SECURITY TYPE(SSL)

改變你appcontex:

<bean id="mqConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory"> 
    <property name="hostName" value="${queue_hostname}"/> 
    <property name="port" value="${queue_port}"/> 
    <property name="queueManager" value="${queue_manager}"/> 
    <property name="transportType" value="1"/> 
    <property name="SSLCipherSuite" value="SSL_RSA_EXPORT_WITH_RC4_40_MD5"/> 
    <property name="channel" value="ssl_channel"/> 
</bean> 

設置SSL在WAS

  1. 轉到:

    安全性→SSL證書和密鑰管理→SSL配置→ NodeDefaultSSLSettings→密鑰庫和證書→NameOfStore→ 簽署者證書

  2. 添加您的證書,我們出口在第3步