【发布时间】:2018-12-11 22:31:14
【问题描述】:
我正在尝试使用 SSL 从 AIX 机器连接到远程 QM。
我在服务器(包含上述 QM + 通道的机器)上创建了一个 KeyStore,并导出了其自签名证书并从客户端导入了证书。
我在 AIX 机器上使用 GSK 创建了一个 Keystore,其中同时存在 Self Signed 和 Signer of the Server。
尝试连接到 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,但都没有成功。我错过了什么?
任何帮助表示赞赏。
【问题讨论】:
-
显示应用程序正在使用的通道的“客户端”代码或 MQ JNDI 或 CCDT 值。看来您还没有在客户端定义 SSL/TLS 值。
-
您好 Roger,感谢您的评论,我已添加用于连接到上述 QM 的客户端代码。如上所述,这适用于我的 Windows 单元测试
-
你使用的是什么版本的MQ客户端?
-
为了让未来的用户能够找到此内容,最好粘贴问题中屏幕截图中显示的文本,而不是屏幕截图,因为这些错误随后可以在 Google 和堆栈溢出。例如,从 AMKERR01.LOG 粘贴文本后,您可以突出显示它并单击顶部的
"图标,它将在每行的开头插入 4 个空格,使其保持与粘贴相同的格式。跨度>
标签: ssl ssl-certificate ibm-mq aix