【问题标题】:Exception in connectioncom.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2400'connectioncom.ibm.mq.MQException 中的异常:MQJE001:完成代码“2”,原因“2400”
【发布时间】:2021-10-27 12:32:42
【问题描述】:

我正在尝试使用 Java 客户端连接到使用 1 路 SSL 的 MQ 队列管理器。即使按照各种博客中提到的所有步骤,我仍然收到 MQJE001: Completion Code '2', Reason '2400' 错误。

请找到我们正在使用的 java 代码:

【问题讨论】:

    标签: java jmeter ssl-certificate ibm-mq loadrunner


    【解决方案1】:

    在不了解步骤操作的情况下复制和粘贴步骤并不是最好的方法。在此处粘贴代码作为图像也是如此。

    根据2400 (0960) (RC2400)错误描述:

    请求了与队列管理器的连接,并指定了 SSL 加密。但是,JSSE 报告它不支持应用程序指定的 CipherSuite。

    检查应用程序指定的 CipherSuite。请注意,JSSE CipherSuite 的名称与队列管理器使用的等效 CipherSpec 不同。

    另外,检查 JSSE 是否正确安装。

    因此,您正在尝试使用 MQ 可能支持但您的本地 Java 安装不支持的密码套件。您可以尝试使用 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 或从您的 MQ 机器获取 JDK,该机器应该安装了这个 ECDHE_RSA_AES_256_CBC_SHA384 密码套件。

    更多信息:

    【讨论】:

      【解决方案2】:

      IBM MQ 错误 2400 表示 UNSUPPORTED_CIPHER_SUITE

      根据 JDK 供应商 (IBM/Oracle),您可以使用 Java 系统属性 com.ibm.mq.cfg.useIBMCipherMappings 启用 CipherSuite mapping。根据您要使用的屏幕截图ECDHE_RSA_AES_256_CBC_SHA384。如果您使用 Oracle JDK,则必须在 Java 中执行此操作:

      System.setProperty("com.ibm.mq.cfg.useIBMCipherMappings", "false");
      ...
      MQEnvironment.sslCipherSuite = "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384";
      

      如果您使用的是 MQ 9.2,您还可以简单地配置密码套件*TLS12ORHIGHER

      【讨论】:

      • 请注意,要在 Java 客户端使用 *TLS12ORHIGHER,队列管理器 SVRCONN 通道必须设置为 ANY_TLS12_OR_HIGHER
      • @JoshMc 你是对的。今天刚刚与 zOS 上的 MQ 服务器进行了调试会话,那里 SDR 通道的密码别名不起作用,我们不得不使用固定密码;但对于 RCVR 频道,密码别名很好。
      • 它适用于任何正在连接的通道,您始终可以将它们设置为 ANY 值之一(接收连接的 SVRCONN、RCVR、SVR 或 RQSTR),CLUSRCVR 除外,在集群中的所有队列管理器都在 9.2 之前,它不应该被更新。
      【解决方案3】:

      您指定的是队列管理器 CipherSpec,下面是来自CipherSuite mappingIBM Docs 页面的表格,显示了根据 Java 提供程序使用哪个 CipherSuite。

      CipherSpec Equivalent CipherSuite (IBM JRE) Equivalent CipherSuite (Oracle JRE)
      ECDHE_RSA_AES_256_CBC_SHA384 SSL_ECDHE_RSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

      如果您不使用 IBM JRE,那么您必须指定 java 系统属性:

      com.ibm.mq.cfg.useIBMCipherMappings=false
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-07
        • 1970-01-01
        • 1970-01-01
        • 2011-06-27
        • 1970-01-01
        • 2012-06-29
        • 1970-01-01
        相关资源
        最近更新 更多