Учебное пособие Алекса Фенерса в developerWorks несколько устарело (2005 г.), но содержит примеры кода, которые должны работать на вас.
Конфигурация SSL Java / JMS-клиента Websphere MQ
Ваше Java-приложение будет аутентифицировать QMgr на основе своего сертификата. Это означает, что предоставленный вами jks-файл должен иметь либо самозаверяющий сертификат QMgr, либо он должен иметь корневой сертификат центра сертификации, который подписал сертификат QMgr. В любом случае вы указываете на файл, используя -Djavax.net.ssl.trustStore=<location of trustStore>
, как указано в статье, указанной выше. Если у jks есть пароль, вам нужно будет указать также -Djavax.net.ssl.trustStorePassword=<password>
. Аутентификация QMgr в хранилище доверенных сертификатов всегда . Следующая часть может или не может потребоваться.
Другая часть головоломки заключается в том, что QMgr может потребовать, чтобы ваше приложение предоставило сертификат. Другими словами, сертификат QMgr аутентифицирован всегда , независимо от того, требуется ли приложению аутентификация, необязательно. Если это так, то у вас есть то, что известно как «взаимная аутентификация». Если канал, к которому вы подключаетесь, был настроен с SSLCAUTH(REQUIRED)
, тогда взаимная аутентификация была включена, и QMgr должен иметь самоподписанный сертификат вашего приложения или корневой сертификат CA, который подписал сертификат вашего приложения в его хранилище ключей. Надеюсь, тот, кто настроил ваш jks-файл, уже подготовился к этому.
Предполагая, что требуется взаимная аутентификация, ваш jks будет иметь, в дополнение к доверенному сертификату QMgr, частный сертификат, представляющий ваше приложение. Чтобы приложение получало сертификат и представляло его QMgr, вы используете параметры -Djavax.net.ssl.keyStore=<location of keyStore>
и -Djavax.net.ssl.keyStorePassword=<password>
. Обратите внимание, что говорят key store, тогда как в предыдущих параметрах говорилось trust store.
Моя рекомендация - поработать с администратором WMQ для настройки и проверки SSL-соединения. Первым этапом должно быть тестирование канала с SSLCAUTH(OPTIONAL)
. Это подтверждает, что приложение может разрешить и аутентифицировать сертификат QMgr. Только когда вы получите эту работу, администратор WMQ сможет изменить канал на SSLCAUTH(REQUIRED)
, который проверяет аутентификацию в обратном направлении.
Я бы настоятельно рекомендовал бы использовать клиент WMQ v7 для нового приложения. Это происходит по двум причинам: 1) версия v6 является окончанием срока службы по состоянию на сентябрь 2011 года; 2) код v7 имеет гораздо больше встроенных диагностических возможностей. Код клиента v7 полностью совместим с QMgr v6 и работает как клиент v6. Вы просто не получаете функциональность v7. Загрузите бесплатный код клиента WMQ здесь:
IBM - MQC7: клиенты WebSphere MQ V7.0
Я управляю практической лабораторией безопасности WMQ в IMPACT в этом году и буду публиковать сценарии и руководство по лаборатории в выходные дни по адресу http://t -rob.net , так что проверьте это.