2013-05-13 5 views
3

Я пытаюсь подключиться к WMQ с простой веб-службы, запущенной на сервере приложений WebSphere.Настройка SSL между Websphere App Server и Websphere MQ

В WMQ у меня есть канал с SSL. На данный момент я использую самозаверяющие сертификаты.

В случае стеклянной рыбы я просто добавляю этот сертификат в хранилище ключей в домене, и все работает хорошо (отключить, потому что я настраиваю свой 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 -типа КМВ -expire 365 -stash

  2. Создать сертификат и добавить его в KeyStore

    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 -экстракта -db "C: \ DEV \ sslqm001 \ sslqm001.kdb" -pw serverpass -label ibmwebspheremqssl_qm001 -target SSL_QM001.crt -format ASCII

  4. В настройках менеджера очередей, вкладка " SSL "установил путь к хранилищу ключей без .KDB и FIPS для No:

    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 (ОПЦИЯ) ЗАМЕНА

  7. В очереди диспетчера обновления SSL:

    ТИП ОБНОВЛЕНИЕ БЕЗОПАСНОСТИ (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

Смежные вопросы