gpt4 book ai didi

ssl - JMSCMQ0001 : IBM MQ call failed with compcode '2' ('MQCC_FAILED' ) reason '2400' ('MQRC_UNSUPPORTED_CIPHER_SUITE' )

转载 作者:太空宇宙 更新时间:2023-11-03 12:47:58 27 4
gpt4 key购买 nike

尝试从本地计算机上的 Java 客户端与远程 MQ 建立连接时出现以下异常:

com.ibm.mq.MQException: JMSCMQ0001: IBM MQ call failed with compcode '2' ('MQCC_FAILED') reason '2400' ('MQRC_UNSUPPORTED_CIPHER_SUITE')

这是 Java 1.7 版、Oralce JRE、密码套件“TLS_RSA_WITH_AES_256_CBC_SHA256”和以下 Maven 依赖项:

<dependency>
<groupId>com.ibm.mq</groupId>
<artifactId>allclient</artifactId>
<version>9.0.0</version>
</dependency>
<dependency>
<groupId>com.sun.messaging.mq</groupId>
<artifactId>fscontext</artifactId>
<version>4.4.2</version>
</dependency>

最佳答案

更新

使用更多当前信息更新之前提供的每个点。

  1. IBM MQ 9.2 及更高版本现在支持 TLS1.3。 TLS1.3 密码套件现在使用在 Oracle Java 和 IBM Java 中匹配的标准名称,您不再需要使用 -Dcom.ibm.mq.cfg.useIBMCipherMappings=false能够使用 TLS1.3 密码套件。

  2. 使用 Oracle 密码套件 TLS_RSA_WITH_AES_256_CBC_SHA256 需要签名算法 SHA224withRSA。 Oracle JRE 1.7.0_171 或更高版本和 1.8.0_162 或更高版本现在默认启用无限强度策略文件并支持 SHA224withRSA

  3. 使用 SHA256 密码套件所需的 JCE Unlimited Strength Jurisdiction Policy Files 现在包含在上述版本或更高版本中并默认启用。 p>


影响这一点的有三件事:

  1. 如果您想使用 Oracle JRE,您需要设置 -Dcom.ibm.mq.cfg.useIBMCipherMappings=false,这将允许 IBM MQ 使用 Oracle Cipher Suite 名称,例如TLS_RSA_WITH_AES_256_CBC_SHA256

  2. Oracle JRE 1.7 不支持签名算法 SHA224withRSA,使用 Oracle Cipher Suite TLS_RSA_WITH_AES_256_CBC_SHA256 需要签名算法。基于此,您需要转到 Oracle JRE 1.8。

  3. 您需要获取并安装 JCE Unlimited Strength Jurisdiction Policy Files 才能使用 SHA256 密码套件。


以上信息在我对另一篇文章“MQ Error on SSL enabled”的回答中有更详细的介绍。

关于ssl - JMSCMQ0001 : IBM MQ call failed with compcode '2' ('MQCC_FAILED' ) reason '2400' ('MQRC_UNSUPPORTED_CIPHER_SUITE' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43736957/

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