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", который также имеет хорошую информацию с скриншотами.
просто заметка. Я также пробовал это с помощью * USER – renz
Вы добавили опцию '-s'? У меня нет версии v8.0 SimplePut.cs для просмотра, но в версии 7.5 эта опция отсутствует. – JoshMc
Ничего из этого не произошло - Использование: 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