2017-02-20 7 views
1

Я пытаюсь подключиться к удаленному серверу IBM MQ (v.8.0), и я получаю ошибку ниже. Я использую .Net 4.5.2 в Windows 10. Я изменил программу SimplePut.exe, которая поставляется с установкой клиента. Я думаю, что я могу упустить что-то, что связано с сертификатом клиента, который был выпущен и установлен после их инструкций. Возможно, параметр CertificateLabel? Я очень новичок в IBM MQ, поэтому любая помощь очень ценится.IBM MQ.Net CertificateLabel, CipherSpec

-h <host> -p 1434 -s TLS_RSA_WITH_AES_256_CBC_SHA256 -q INS -l connection -k *SYSTEM 

ошибку, показанных на менеджере очередей при запуске программы выглядит следующим образом:

Cause . . . . . : 
There is a mismatch between the CipherSpecs on the local and remote ends of 
channel ''. The channel will not run until this mismatch is resolved. 
The local CipherSpec is 'TLS_RSA_WITH_AES_256_CBC_SHA256' and the remote 
CipherSpec is 'TLS_RSA_WITH_AES_128_CBC_SHA256'. 
Recovery . . . : 
Change the channel definition for '' so that both ends have matching 
CipherSpecs and restart the channel. 
+0

просто заметка. Я также пробовал это с помощью * USER – renz

+0

Вы добавили опцию '-s'? У меня нет версии v8.0 SimplePut.cs для просмотра, но в версии 7.5 эта опция отсутствует. – JoshMc

+0

Ничего из этого не произошло - Использование: SimplePut -q queueName -k keyRepository -s cipherSpec [-h host -p port -l channel -n numberOfMsgs -dn sslPeerName -kr keyResetCount -cr sslCertRevocationCheck] из того, что я читал последние пару дней, я думаю, что это функция в управляемом клиенте v8.0. Раньше вы не могли указать cipherSpec из-за ограничения в структуре. Или так я считаю :) – renz

ответ

2

MQ v8.0 Центр знаний страница "Configuring SSL for managed IBM MQ .NET" говорится следующее:

с. При необходимости отредактируйте групповую политику Windows, чтобы установить CipherSpec, затем, чтобы обновления групповой политики Windows вступили в силу, перезагрузите компьютер.

и

а. Установите значение MQEnvironment или SSLCipherSpec, чтобы обозначить соединение как защищенное соединение. Указанное вами значение используется для идентификации используемого протокола SSL (SSL или TLS) и должно соответствовать любым предпочтениям, указанным в групповой политике Windows.

MQ v8.0 Центр знаний страница "CipherSpec support for the managed .NET client" переходит в несколько более подробно:

Для IBM MQ.NET клиент, управляемый, настройки SSL предназначены для класса Microsoft.NET SSLStream. Для SSLStream CipherSpec или список предпочтений CipherSpecs, могут быть установлены только в групповой политике Windows, которая является общесистемной установкой. Затем SSLStream использует указанный CipherSpec или список предпочтений во время рукопожатия с сервером. В случае других клиентов IBM MQ свойство CipherSpec можно установить в приложении в определении канала IBM MQ, и для согласования SSL используется тот же параметр. В результате этого ограничения рукопожатие SSL/TLS может согласовывать любой поддерживаемый CipherSpec независимо от того, что указано в конфигурации канала IBM MQ. Следовательно, вполне вероятно, что это приведет к ошибке AMQ9631 в менеджере очередей. Чтобы избежать этой ошибки, установил тот же CipherSpec, который был установлен в приложении в качестве конфигурации SSL в политике группы Windows.


групповой политики Windows,

Когда CipherSpec устанавливается на групповой политики Windows, то же CipherSpec должен быть установлен на значение SSLCipherSpec собственности на канале SVRCONN и в приложении , Если для политики групповой политики Windows установлено значение по умолчанию, то групповая политика не включена/не изменена для параметра CipherSpec, приложения должны установить одинаковое значение по умолчанию для CipherSpec из политики SSL в Windows. Конфигурация SSL в классе MQEnvironment или в свойства хэш-таблицы конструктора MQQueueManager.


UPDATE на определение метки Cert с Managed .NET

MQ v8.0 Центр знаний страницы "Using certificates for the managed .NET client" идет в деталь из двух вариантов, чтобы позволить MQ найти сертификат:

Соответствующие сертификаты по наклейке сертификата

Если вы установили метку сертификата, клиент IBM MQ, управляемый .NET, будет искать хранилище сертификатов Windows с указанным именем метки для идентификации сертификата клиента. Он загружает все соответствующие сертификаты и использует первый сертификат в списке. Существует два варианта установки метки сертификата:

  • Метка сертификата может быть установлена ​​на класс MQEnvironment, доступ к MQEnvironment.CertificateLabel.
  • Метка сертификата также может быть задана в свойствах хэш-таблицы, поставляемой в качестве входного параметра с конструктором MQQueueManager, как показано в следующем примере.
    Hashtable properties = new Hashtable();
    properties.Add("CertificateLabel", "mycert");
    Название ("CertificateLabel") и значение чувствительны к регистру.

Соответствующие сертификаты по строке

Если метка сертификата не установлен, то сертификат, который соответствует строке «ibmwebspheremq» и текущего вошедшего пользователя (в нижнем регистре) ищется и используется.


UPDATE с дополнительным полезным блоге

@renz нашел IBM Developerworks MQdev блог Написал Sudhanshu Pant " MQ v8: SSL connection in Managed MQ .NET", который также имеет хорошую информацию с скриншотами.

+0

Привет, извинения Я должен был сказать, что ошибка связана с удаленным хостом (на стороне сервера). Как вы можете видеть, я говорю ему использовать TLS_RSA_WITH_AES_256_CBC_SHA256. Но в своих журналах он пытается подключиться с помощью TLS_RSA_WITH_AES_128_CBC_SHA256. Вот почему я думал, что должен что-то упустить. Спасибо, что посмотрели кстати. – renz

+0

Спасибо, ограничивая групповую политику. SSL Cipher Suites только с использованием AES_256 либо исправил проблему, либо хотя бы заставил ее использовать этот шифр. Теперь это ускользает от актуальной проблемы, которая есть - AMQ9637: Каналу не хватает сертификата. У меня есть сообщение, в котором будет рассмотрен этот вопрос [ссылка] (https://www.ibm.com/developerworks/community/blogs/belinky/entry/digital_certificate_labels_digital_certificate_label34?lang=en), поэтому он будет позже. Будет ли задавать новый вопрос, если он не работает :) Приветствия – renz

+0

@renz Добавлена ​​подробная информация об управляемом сопоставлении ярлыков .NET. Второй вариант - это способ, которым MQ работал в прошлом с другими не-Java-клиентами и требует, чтобы метка соответствовала определенному формату, который включает имя пользователя, выполняющего этот процесс, это то, что обсуждается в приведенной ссылке. Первый вариант позволяет вам указать любой ярлык, который вы хотите, и соответствует усовершенствованиям MQ v8, а затем всем клиентам и менеджерам очередей, чтобы вы могли указать метку. – JoshMc

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