我正在尝试连接到远程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.
答案 0 :(得分:2)
MQ v8.0知识中心页面&#34; Configuring SSL for managed IBM MQ .NET&#34;声明如下:
℃。如果需要,请编辑Windows组策略以设置CipherSpec,然后,要使Windows组策略更新生效,请重新启动计算机。
和
一个。设置MQEnvironment或SSLCipherSpec值以将连接表示为安全连接。您指定的值用于标识正在使用的SSL协议(SSL或TLS),必须与您在Windows组策略中指定的任何首选项匹配。
MQ v8.0知识中心页面&#34; CipherSpec support for the managed .NET client&#34;进一步详细说明:
对于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设置启用/编辑组策略,则应用程序必须从Windows组策略SSL配置中设置相同的CipherSpec默认值MQEnvironment类或MQQueueManager构造函数哈希表属性。
使用Managed .NET指定证书标签时更新
MQ v8.0知识中心页面&#34; Using certificates for the managed .NET client&#34;详细介绍了允许MQ查找证书的两个选项:
按证书标签匹配证书
如果设置了证书标签,那么IBM MQ托管的.NET客户端将使用给定的标签名称搜索Windows证书存储区以标识客户端证书。它加载所有匹配的证书并使用列表中的第一个证书。设置证书标签有两个选项:
- 证书标签可以在访问MQEnvironment.CertificateLabel的MQEnvironment类上设置。
- 证书标签也可以在哈希表属性中设置,作为输入参数提供MQQueueManager构造函数,如以下示例所示。
Hashtable properties = new Hashtable();
properties.Add("CertificateLabel", "mycert");
名称(&#34; CertificateLabel&#34;)和值区分大小写。按字符串匹配证书
如果未设置证书标签,则表示与字符串匹配的证书&#34; ibmwebspheremq&#34;并搜索和使用当前登录用户(小写)。
更新其他有用的博文
@renz找到了由Sudhanshu Pant发布的IBM developerWorks MQdev博客&#34; MQ v8: SSL connection in Managed MQ .NET&#34;这也有很好的屏幕截图信息。