IBM MQ.Net CertificateLabel,CipherSpec

问题描述 投票:1回答:1

我正在尝试连接到远程IBM MQ服务器(v.8.0),并且收到以下错误。我在Windows 10上使用.Net 4.5.2。我修改了客户端安装附带的SimplePut.exe程序。我想我可能会忘记与我发布的客户端证书有关,并按照他们的指示进行安装。可能是CertificateLabel设置?我是IBM MQ的新手,所以非常感谢任何帮助。

-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.
ssl ibm-mq client-certificates
1个回答
2
投票

MQ v8.0知识中心页面“Configuring SSL for managed IBM MQ .NET”声明如下:

C。如果需要,请编辑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或CipherSpec的首选项列表只能在Windows组策略中设置,该策略是计算机范围的设置。然后,SSLStream在与服务器握手期间使用指定的CipherSpec或首选项列表。对于其他IBM MQ客户端,可以在IBM MQ通道定义上的应用程序中设置CipherSpec属性,并使用相同的设置进行SSL协商。由于此限制,SSL / TLS握手可能会协商任何受支持的CipherSpec,无论IBM MQ通道配置中指定了什么。因此,这可能会导致队列管理器上的错误AMQ9631。要避免此错误,请将与在应用程序中设置的密码相同的CipherSpec设置为Windows组策略中的SSL配置。


Windows组策略

在Windows组策略上设置CipherSpec时,必须为SVRCONN通道和应用程序中的SSLCipherSpec属性值设置相同的CipherSpec。如果Windows组策略设置为默认值,即未为CipherSpec设置启用/编辑组策略,则应用程序必须从MQEnvironment类或MQQueueManager中的Windows组策略SSL配置设置相同的CipherSpec默认值构造函数哈希表属性。


使用Managed .NET指定证书标签时的更新

MQ v8.0知识中心页面“Using certificates for the managed .NET client”详细介绍了允许MQ查找证书的两个选项:

按证书标签匹配证书

如果设置了证书标签,那么IBM MQ托管的.NET客户端将使用给定的标签名称搜索Windows证书存储区以标识客户端证书。它加载所有匹配的证书并使用列表中的第一个证书。设置证书标签有两个选项:

  • 证书标签可以在访问MQEnvironment.CertificateLabel的MQEnvironment类上设置。
  • 证书标签也可以在哈希表属性中设置,作为输入参数提供MQQueueManager构造函数,如以下示例所示。 Hashtable properties = new Hashtable(); properties.Add("CertificateLabel", "mycert"); 名称(“CertificateLabel”)和值区分大小写。

按字符串匹配证书

如果未设置证书标签,则搜索并使用与字符串“ibmwebspheremq”匹配的证书和当前登录用户(小写)。


更新其他有用的博客文章

@renz找到了由Sudhanshu Pant发布的IBM developerWorks MQdev博客“ MQ v8: SSL connection in Managed MQ .NET”,它也有很好的屏幕截图信息。

© www.soinside.com 2019 - 2024. All rights reserved.