.NET 客户端通过 SSL 连接到 IBM MQ

use*_*523 4 c# ibm-mq

我从客户端获得了密钥文件,我需要使用它们通过 SSL 连接到 MQ。我们从客户那里得到的文件是:

xxx.crl
xxx.kdb
xxx.rdb
xxx.sth
xxx.tab

他们说的是客户端频道表。我正在尝试使用以下代码进行连接。他们说我不需要指定队列管理器,它将在客户端通道表中定义。但有一件事是他们在使用“user1”创建密钥时已经完成了。

代码:

Hashtable connectionProperties = new Hashtable(); 

// Add the connection type 
connectionProperties.Add(MQC.TRANSPORT_PROPERTY, connectionType); 

MQQueueManager qMgr; 

MQEnvironment.SSLCipherSpec = "TRIPLE_DES_SHA_US"; 
MQEnvironment.SSLKeyRepository = @"D:\Cert\BB\key"; 
MQEnvironment.UserId = "user1"; 
MQEnvironment.properties.Add(MQC.TRANSPORT_PROPERTY, connectionType); 
qMgr = new MQQueueManager(); 
Run Code Online (Sandbox Code Playgroud)

我收到错误:

消息 =“MQRC_Q_MGR_NAME_ERROR”

我还尝试了我能够做到的远程登录服务器。

有人可以帮我看看我在这里做错了什么以及为什么会出现此错误。

use*_*523 5

我通过设置以下环境变量解决了这个问题。连接之前。

环境变量是 MQCHLLIB、MQCHLTAB、MQSSLKEYR - 使用 Environment.SetEnvironmentVariable - 设置值

<add key="MQ_SSL_CERT_PATH" value="D:\Cert\<nameof KDB with out .kdb>" />   
<add key="MQ_CHANNEL_LIB" value="D:\Cert" />  --- Certs location. 
<add key="MQ_CHANNEL_TAB" value="xxx.tab" />
<add key="NMQ_MQ_LIB" value="mqic.dll" />  - **Make sure you give the refarance of this DLL**
Run Code Online (Sandbox Code Playgroud)

设置完所有这些后,只需调用queueManager = new MQQueueManager(); - 你应该很好。