我正尝试使用安全SSL连接来连接远程队列。我有第三方提供的有关SSL连接和队列管理器详细信息的所有详细信息。我的Windows机器上安装了MQ客户机的V8版本。IBM Webshpere MQ客户端使用SSL连接远程队列
第三方共享的SSL文件夹包含jks,kdb,rdb和sth文件。
我使用下面的代码来初始化
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;
}
我已经试过几件事情在.NET控制台应用程序的属性,但我最终得到例外“MQRC_SSL_INITIALIZATION_ERROR”
我将不胜感激,如果你可以帮助我。
@prashant离线与我联系。用Peer Name来怀疑问题,格式似乎不正确。 – Shashi
@Shashi为什么它会提供与SSL有关的异常?它应该与Peer name相关。我是否需要使用特定的用户标识运行控制台应用程序?我得到了第三方的回应,说它可能是“用户标识符和密钥库文件ID不匹配” – prashant
对端名称是初始化安全通道所需的属性。对于初始化安全通道时遇到的错误,IBM MQ返回MQRC_SSL_INITIALIZATION_ERROR。您是否已与第三方确认您的应用程序设置的SSL属性是正确的? – Shashi