[英]Connect to LDAP over ssl from remote machine using “DirectoryEntry” API
[英]Connecting to a Remote Queue Manager from an AIX Machine using SSL
我正在尝试使用AIX机器上的SSL连接到远程QM。
我已经在服务器(包含上述QM +通道的机器)上创建了密钥库,并导出了其自签名证书,并从客户端导入了证书。
我已经在AIX机器上使用GSK创建了一个密钥库,其中同时存在服务器的自签名和签名者。
尝试连接到QM时,客户端代码如下。 该代码在Windows上确实有效,但是在AIX上却不起作用,这使我相信这是证书问题,我做错了,而不是代码问题。
CipherSpec为-TLS_RSA_WITH_AES_256_CBC_SHA256,并且密钥库位置正确。
m_QChannel.setChannelName(m_strChannelName);
m_QChannel.setConnectionName(m_pParent->GetName());
m_QChannel.setTransportType( MQXPT_TCP );
if (!m_strCipherSpec.IsEmpty())
{
m_QChannel.setSslCipherSpecification(m_strCipherSpec);
if (!m_strKeyStore.IsEmpty())
{
m_QMgr.setKeyRepository(m_strKeyStore);
}
else
{
CString strKeyStore = getenv("MQSSLKEYR");
m_QMgr.setKeyRepository(strKeyStore);
}
}
//Set the queue manager options
m_QMgr.setName(m_strName);
m_QMgr.setChannelReference(&m_QChannel);
if (!m_QMgr.connect())
{
m_iLastError =m_QMgr.reasonCode( ) ;
return false;
}
但是,当我尝试运行我的应用程序进行连接时,得到返回的MQRC 2393错误,在检查错误日志时会抱怨证书。
我尝试过重新启动QM,重新启动通道,刷新SSL,但是都没有运气。 我错过了什么?
任何帮助表示赞赏。
您拥有的客户机证书的当前标签是ibmwebspherebldaix02
。
对于MQI客户端应用程序,MQ将查找的缺省证书标签是字符串ibmwebspheremq
后跟应用程序正在运行的用户的名称,全部用小写字母表示。
在这种情况下,它不符合缺省要求的第一部分,因为它以ibmwebsphere
并缺少mq
,然后跟随bldaix02
。
您有几种选择:
bldaix02
则可以将密钥库中的证书重命名为ibmwebspheremqbldaix02
。 如果不是用户名,则将证书重命名为ibmwebspheremq<username>
全部小写。 此选项应与所有版本的IBM MQ产品一起使用。 AMQ_SSL_ALLOW_DEFAULT_CERT
设置为任何值来告诉MQ使用默认证书。在调用connect之前先执行此操作。 请注意,此功能在IBM MQ v8.0和v9.0的初始版本中已被删除,但后来在8.0.0.7和9.0.0.1及更高版本中被添加。 如果您正在使用IBM MQ v8.0或更高版本( 应该是因为这是当前唯一受支持的版本 ),则可以告诉MQ寻找不同的标签。 您可以通过四种方式执行此操作:
CLNTCONN
通道的CERTLABL
属性。 MQSCO
设置CertificateLabel
属性 MQCERTLABL
,或者如果在程序中执行环境变量,则在调用connect之前进行设置。 SSL:
节的CertificateLabel
属性。 您可以在以下链接中找到更多信息:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.