使应用程序正常运行的问题,.NET WebsphereMQ(IBM.XMS)和SSL

时间:2013-02-06 23:20:42

标签: .net ibm-mq websphere-7

我正在尝试按主题连接到pub / sub的频道。我正在非托管模式下运行,因为这是唯一支持SSL的模式。我在与应用程序相同的目录中指定了密钥为CIPHER SPEC的{​​{1}}和KEY_REPO我还尝试了密钥存储区的完整路径,但是<无效)。在那里有一个关联的key.kdb,其中包含使用证书的密码(加密)。下面是代码片段,更少的连接字符串和其他敏感信息。

key.sth

我在Visual Studio中遇到以下异常,它只是告诉我MQ客户端抛出了错误。

XMSFactoryFactory factoryFactory = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ);
IConnectionFactory connectionFactory = factoryFactory.CreateConnectionFactory();

connectionFactory.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT_UNMANAGED);

connectionFactory.SetStringProperty(XMSC.WMQ_HOST_NAME, "hostName");
connectionFactory.SetIntProperty(XMSC.WMQ_PORT, 1234);
connectionFactory.SetStringProperty(XMSC.WMQ_CHANNEL, "Channel");
connectionFactory.SetStringProperty(XMSC.WMQ_QUEUE_MANAGER, "QueueManager");

connectionFactory.SetStringProperty(XMSC.WMQ_SSL_CIPHER_SPEC, "NULL_SHA");
connectionFactory.SetStringProperty(XMSC.WMQ_SSL_KEY_REPOSITORY, @"key");

connection = connectionFactory.CreateConnection();

我可以通过下面的事件日志看到MQ客户端抛出的特定错误。

CWSMQ0006E: An exception was received during the call to the method 
ConnectionFactory.CreateConnection: CompCode: 2, Reason: 2393. During 
execution of the specified method an exception was thrown by another 
component. See the linked exception for more information.

我似乎无法弄清楚这个设置有什么问题..有什么想法吗?

1 个答案:

答案 0 :(得分:1)

该错误似乎表明QMgr的证书已由客户验证。这意味着它找到了KDB和STH文件。现在它正在尝试验证客户端证书。这可能意味着......

a)找不到客户证书,可能是因为标签为  b)QMgr没有客户端的公钥(自签名)或CA根

我通常按照this other SO answer.中列出的程序验证TLS频道测试如果您使用SSLCAUTH(OPTIONAL)成功测试,那么它往往会证实我的猜测。如果这不起作用,那么您需要提供有关您是否使用自签名证书,QMgr的KDB中的内容,是否在更新其密钥库后在QMgr上运行REFRESH SECURITY TYPE(SSL)以及证书标签名称的详细信息在客户端的密钥库中。

相关问题