使用 C++ API 将 mq 客户端连接到具有加密通道的 mq 服务器

Posted

技术标签:

【中文标题】使用 C++ API 将 mq 客户端连接到具有加密通道的 mq 服务器【英文标题】:Connecting mq client to mq server with encrypted channel using C++ API 【发布时间】:2020-09-16 18:05:52 【问题描述】:

我有一个旧应用程序使用 C++ API 从 MQ 客户端访问 MQ 服务器。此 API 如何用于通过服务器连接通道添加加密?我找不到将证书提供给 imqChannel 对象的位置。

【问题讨论】:

【参考方案1】:

你没有提供任何不能帮助你的代码,所以我只能提供一些大方向。

您可以这样指定密码:

pchannel->setSslCipherSpecification("TLS_RSA_WITH_AES_256_CBC_SHA256");

您可以像这样指定kdbsth 文件的位置: (请注意,在此示例中,它希望找到两个文件,/tmp/key.kdb/tmp/key.sth

manager.setKeyRepository("/tmp/key");

您还可以使用mqclient.ini 或设置MQSSLKEYR 环境变量以非编程方式指定密钥存储库的位置,如果您对这些选项评论感兴趣,我将展开此答案。

【讨论】:

没有代码,因为没有尝试编写任何代码,因为我不知道如何开始: manager.setKeyRepository 是缺失的部分。我们正在研究非编程版本,但当我们需要支持不同的队列管理器而不是我们无法控制时,共享环境是个绊脚石。无论如何,感谢您提供的信息。 @jmucchiello C++ API 已由 IBM 稳定,其功能不再支持 MQ。他们建议您使用 C++ 中的普通 C API。您可以将mqclient.ini 放在进程的当前工作目录中,MQ 会首先查看那里。您可以使用它来进行特定于进程的配置 我很清楚 C++ API 的状态。我的问题的第四个词是“遗产”是有原因的。您是否有提出该建议的 URL?我想撕掉 C++ API,但因为它是一个遗留应用程序...... yada yada 这里有几个链接:ibm.com/support/knowledgecenter/en/SSFKSJ_9.2.0/…、***.com/questions/57101776/…、***.com/questions/20062808/…、share.confex.com/share/116/webprogram/Handout/Session8875/… 的第 5 页。

以上是关于使用 C++ API 将 mq 客户端连接到具有加密通道的 mq 服务器的主要内容,如果未能解决你的问题,请参考以下文章

将 Java 客户端 (JMS) 连接到 IBM MQ 时出现问题

在 C# 中连接到 Websphere MQ 有效,但在 C++ 中失败,代码为 2058 (MQRC_Q_MGR_NAME_ERROR)

无法使用 Spring Boot 连接到具有多个 SSL 证书的多个 IBM MQ 通道

Amazon MQ 客户端使用哪个 TLS/SSL 版本连接到代理?

连接到 IBM Websphere MQ 时出现 NullPointerException

使用 MQClient java 和 MQExplorer 错误 JMSWMQ2013 将 JMS 连接到 MQ