Соединение с Websphere MQ в Java с SSL/Keystore

Я хотел бы соединиться с Websphere 6.0 MQ через Java. У меня уже есть рабочий код для "нормальной" очереди, но теперь я должен получить доступ к новой очереди, которая является зашифрованный (keystore) SSL. Я был отправлен файл, названный something.jks, который я принимаю, сертификат, который я должен сохранить где-нибудь. Я искал сеть, но я не могу найти правильную информацию.

Это - код, который я использую для "нормальной" очереди. Я предполагаю, что должен установить некоторое свойство, но не уверенный который.

MQQueueConnectionFactory connectionFactory = new MQQueueConnectionFactory();
connectionFactory.setChannel(channel_);
connectionFactory.setHostName(hostname_);
connectionFactory.setPort(port_);
connectionFactory.setQueueManager(queueManager_);
connectionFactory.setTransportType(1);
connectionFactory.setSSsetSSLCertStores(arg0)

Connection connection = connectionFactory.createConnection();
connection.setExceptionListener(this);
session_ = connection.createSession(DEFAULT_TRANSACTED, DEFAULT_ACKMODE);
connection.start();

javax.jms.Queue fQueue = session_.createQueue(queue_);
consumer = session_.createConsumer(fQueue);
14
задан javaExpert 25 April 2010 в 06:10
поделиться

1 ответ

Учебник Alex Fehners на developerWorks немного устарел (2005 г.), но в нем есть примеры кода, которые должны вам подойти.

Конфигурация SSL клиента Java / JMS Websphere MQ

Ваше приложение Java будет аутентифицировать QMgr на основе его сертификата. Это означает, что предоставленный вам файл jks должен иметь либо самозаверяющий сертификат QMgr, либо корневой сертификат центра сертификации, подписавшего сертификат QMgr. В любом случае вы указываете файл, используя -Djavax.net.ssl.trustStore = <расположение trustStore> , как указано в статье, указанной выше. Если jks имеет пароль, вам также необходимо указать -Djavax.net.ssl.trustStorePassword = . Аутентификация QMgr в хранилище доверенных сертификатов всегда требуется . Следующая часть может потребоваться, а может и не потребоваться.

Другая часть головоломки заключается в том, что QMgr может потребовать от вашего приложения предоставить сертификат. Другими словами, сертификат QMgr всегда аутентифицируется, необходимость аутентификации приложения не является обязательной. Если это так, то у вас есть так называемая «взаимная аутентификация». Если канал, к которому вы подключаетесь, был настроен с SSLCAUTH (ТРЕБУЕТСЯ) , тогда была включена взаимная проверка подлинности, и QMgr должен иметь самозаверяющий сертификат вашего приложения или корневой сертификат CA, который подписал сертификат вашего приложения в своем хранилище ключей.Надеюсь, тот, кто установил ваш файл jks, уже это устроил.

Предполагая, что требуется взаимная аутентификация, ваши jks будут иметь, помимо доверенного сертификата QMgr, частный сертификат, представляющий ваше приложение. Чтобы приложение получило сертификат и представило его QMgr, вы используете -Djavax.net.ssl.keyStore = и -Djavax.net.ssl.keyStorePassword = <пароль> параметры. Обратите внимание, что они говорят key store, тогда как предыдущие parms говорят trust store.

Я рекомендую обратиться к администратору WMQ для установки и тестирования SSL-соединения. Первым этапом должно быть тестирование канала с помощью SSLCAUTH (ДОПОЛНИТЕЛЬНО) . Это подтверждает, что приложение может разрешить и аутентифицировать сертификат QMgr. Только когда вы получите эту работу, администратор WMQ изменит канал на SSLCAUTH (REQUIRED) , который проверяет аутентификацию в обратном направлении.

Я настоятельно рекомендую вам использовать клиент WMQ v7 для нового приложения. Это происходит по двум причинам: 1) v6 - конец жизненного цикла по состоянию на сентябрь 2011 года; 2) код v7 имеет гораздо больше встроенных диагностических возможностей. Код клиента v7 полностью совместим с v6 QMgr и работает как клиент v6. Вы просто не получаете функциональности v7. Загрузите код клиента WMQ бесплатно здесь:

IBM - MQC7: Клиенты WebSphere MQ V7.0

В этом году я веду практическую лабораторию по безопасности WMQ на IMPACT и опубликую сценарии и руководство по лабораторной работе через выходные в http: // t-rob.net , так что проверьте это еще раз.

12
ответ дан 1 December 2019 в 10:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: