我正在尝试使用c#.net应用程序连接ssl“必需”通道。 我按照以下步骤创建并交换证书
在IBM密钥管理工具的帮助下,我在websphere MQ服务器中创建了自签名证书(192.168.10.2) 然后将其提取为server.arm
然后为客户端做了同样的事情
之后我将server.arm复制到客户端计算机(192.168.10.1),将client.arm复制到WMQ服务器(192.168.10.2)
在服务器的IBM密钥管理工具中,我选择了签名者证书并添加了client.arm我将标签名称设置为ibmwebspheremqclient 然后在客户机(192.168.10.1)中我添加了server.arm作为签名者证书并将标签设置为ibmwebspheremqqm_sslconnect
这是我的频道配置。如果我将此设置设置为可选,那么这对我来说很好,但我必须启用SSL选项为“必需”。
当我尝试连接此代码块时
using IBM.WMQ;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
public class SSLConnectionTest
{
const String connectionType = IBM.WMQ.MQC.TRANSPORT_MQSERIES_CLIENT;
const String qManager = "QM_SSLConnect";
const String hostName = "192.168.10.2";
const String channel = "ADMIN.TLS.SVRCONN";
const String port = "1480";
const String sslKeyRepository = @"C:\Program Files (x86)\IBM\WebSphere MQ\ssl\key";
const String cipherSpec = "TLS_RSA_WITH_AES_128_CBC_SHA256";
const String cipherSuite = "SSL_RSA_WITH_AES_128_CBC_SHA256";
public Hashtable init()
{
Hashtable properties = new Hashtable();
properties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_CLIENT);
properties.Add(MQC.HOST_NAME_PROPERTY, hostName);
properties.Add(MQC.PORT_PROPERTY, port);
properties.Add(MQC.CHANNEL_PROPERTY, channel);
properties.Add(MQC.SSL_CERT_STORE_PROPERTY, sslKeyRepository);
properties.Add(MQC.SSL_CIPHER_SUITE_PROPERTY, cipherSuite);
properties.Add(MQC.SSL_CIPHER_SPEC_PROPERTY, cipherSpec);
return properties;
}
public void TestSSLConnection()
{
try
{
Hashtable connectionProperties = init();
MQQueueManager qMgr = new MQQueueManager(qManager, connectionProperties);
}
catch (MQException ex)
{
Console.WriteLine("A WebSphere MQ error occurred: {0}", ex.ToString());
}
catch (System.Exception ex)
{
Console.WriteLine("A System error occurred: {0}", ex.ToString());
}
}
}
它给了我这个错误代码
我已经刷新了REFRESH SECURITY TYPE(SSL)
我在客户端发现了以下错误(192.168.10.1)C:\ Program Files(x86)\ IBM \ WebSphere MQ \ errors \ AMQERR01.LOG https://docs.google.com/document/d/1gc0AoxQpdLNg1pz_vkw-tapWDNclYXY5ql_aMIVBMfA/edit?usp=sharing
和我的服务器的192.168.10.2错误日志 https://docs.google.com/document/d/1lxzo41TWauAyYKH1wcXOxj6HYlTYkSUoPjaTmsJHxYI/edit?usp=sharing
任何人都可以帮助我吗?
答案 0 :(得分:4)
AMQERR01.LOG文件中的错误告诉您没有接收客户端证书。标签应为ibmwebspheremq<client-logged-on-user>
从屏幕截图中我可以看到您的证书标签是ibmwebspheremqclient
但是从命令提示符的屏幕截图中看来,您登录的用户ID实际上可能是herath
,在这种情况下,MQ代码将寻找证书标签ibmwebspheremqherath
,而不是找到它,所以匿名。
将客户端证书的标签重命名为相应的标签,看看它现在是否已将其取出。