gpt4 book ai didi

apache-camel - 如何使用 SSL 连接从 Camel 路由连接到 IBM MQ?

转载 作者:行者123 更新时间:2023-12-01 13:39:09 33 4
gpt4 key购买 nike

我可以从 Camel 路线成功连接到 IBM MQ 并初始化连接工厂 bean,但现在我想使用 SSL 连接。

  1. 我在服务器端为队列管理器创建 keystore ,并创建证书并将其添加到其中。
  2. 我在客户端创建了一个信任库并将证书添加到其中。
  3. 现在我希望 MQ 连接工厂在连接到服务器时引用信任库。

这是我尝试过的:

<bean id="MyConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory">
<property name="transportType" value="${queue.transportType}" />
<property name="channel" value="${queue.channel}" />
<property name="hostName" value="${queue.hostName}" />
<property name="port" value="${queue.port}" />
<property name="queueManager" value="${queue.manager}" />
<property name="sSLCipherSuite" value="SSL_RSA_WITH_NULL_MD5" />
<property name="sSLCertStores" value="file:C:/Servers/TrustStore/truststore.jks" />
</bean>

但这行不通。返回以下异常:

JMSWMQ0018: Failed to connect to queue manager 'QM_TEST_SSL' 
with connection mode 'Client' and host name '10.3.13.161(1415)'.;
nested exception is com.ibm.mq.MQException: JMSCMQ0001:
WebSphere MQ call failed with compcode '2' ('MQCC_FAILED')
reason '2397' ('MQRC_JSSE_ERROR').

任何人都可以帮助指导我如何做到这一点吗?

最佳答案

从安全的角度来看,客户应该只收到可能与许多问题相关的一般错误消息。找出您的客户被拒绝的确切原因的最佳位置是队列管理器日志。我建议查看那里是否有任何错误可以帮助您进一步确定问题。根据给出的信息,我可以想到 3 个问题:

  1. 队列管理器 channel 设置了 SSLCAUTH(REQUIRED) 属性,但是根据您在此处提供的描述,客户端似乎并未使用其自己的证书进行连接。 SSLCAUTH(REQUIRED) 意味着队列管理器将只接受客户端使用它信任的证书连接的特定 channel 上的连接。检查 channel 定义并设置SSLCAUTH(OPTIONAL)

  2. 根据您的 IBM MQ 版本,您使用的 CipherSpec (SSL_RSA_WITH_NULL_MD5) 被认为是弱的,默认情况下不会被接受。您可以重新启用这些已弃用的 CipherSpecs,有关如何操作的说明可在 following Knowledge Center page 上找到

  3. 客户端未选取信任库“C:/Servers/TrustStore/truststore.jks”,因此客户端无法信任队列管理器的证书。仔细检查您提供的路径并删除您添加到路径中的“文件:”(除非您被特别指示包含它)。

关于apache-camel - 如何使用 SSL 连接从 Camel 路由连接到 IBM MQ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41772525/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com