【发布时间】:2017-04-30 10:35:12
【问题描述】:
我正在尝试使用安全 SSL 连接连接到远程队列。我拥有第三方提供的有关 SSL 连接和队列管理器详细信息的所有详细信息。我的 Windows 机器上安装了 V8 版本的 MQ 客户端。
第三方共享的SSL文件夹包含jks、kdb、rdb等文件。
我正在使用下面的代码来初始化 .net 控制台应用程序中的属性
const string SslKeyRepository = @"ssl folder location with key name included";
const string CipherSpec = "TLS_RSA_WITH_3DES_EDE_CBC_SHA";
const string CipherSuite = "SSL_RSA_WITH_3DES_EDE_CBC_SHA";
const string SslPeerName = "Peername";
const string ConnectionType = MQC.TRANSPORT_MQSERIES_CLIENT;
static Hashtable init(String connectionType)
{
Hashtable connectionProperties = new Hashtable
{
{MQC.TRANSPORT_PROPERTY, connectionType},
{MQC.PORT_PROPERTY, 1496},
{MQC.SSL_CERT_STORE_PROPERTY, SslKeyRepository},
{MQC.SSL_CIPHER_SPEC_PROPERTY, CipherSpec},
{MQC.SSL_PEER_NAME_PROPERTY, $"CN=\"{SslPeerName}\""}
};
// Add the connection type
// SSL
// Set up the rest of the connection properties, based on the
// connection type requested
switch (connectionType)
{
case MQC.TRANSPORT_MQSERIES_BINDINGS:
break;
case MQC.TRANSPORT_MQSERIES_CLIENT:
case MQC.TRANSPORT_MQSERIES_XACLIENT:
case MQC.TRANSPORT_MQSERIES_MANAGED:
connectionProperties.Add(MQC.HOST_NAME_PROPERTY, HostName);
connectionProperties.Add(MQC.CHANNEL_PROPERTY, Channel);
break;
}
return connectionProperties;
}
我尝试了几件事,但最终得到异常 "MQRC_SSL_INITIALIZATION_ERROR"
如果您能帮我解决这个问题,我将不胜感激。
【问题讨论】:
-
@prashant 离线联系了我。怀疑 Peer Name 的问题,格式似乎不正确。
-
@Shashi 为什么会给出与 SSL 相关的异常?它应该与 Peer name 相关。我是否需要使用特定的用户 ID 运行控制台应用程序?我收到第三方的回复说它可能是“用户 ID 和密钥库文件 ID 不匹配”
-
PeerName 是初始化安全通道所需的属性。对于初始化安全通道时遇到的错误,IBM MQ 返回 MQRC_SSL_INITIALIZATION_ERROR。您是否与第三方确认您的应用设置的 SSL 属性是正确的?