You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用amqputc连接TLS队列遇MQCONNX 2393错误,请求配置排查

排查MQ AMQ9636E SSL身份匹配问题

环境配置概述

  • 已安装MQ,通过mq-dev-config.mqsc创建队列
  • 生成TLS所需根证书、服务器证书、客户端证书,存放于/var/mqm/qmgrs/QM1/ssl路径
  • 队列管理器QM1已正确加载SSLKEYR(/var/mqm/qmgrs/QM1/ssl/key)和CERTLABL(ibmwebspheremqqm1)配置
  • 使用DEV.APP.SVRCONN通道,通道配置:
    • SSLCIPH(ANY_TLS12)、SSLCAUTH(OPTIONAL)、CERTLABL('')
    • 移除队列管理器CONNAUTH配置,添加回退通道认证规则
    • CHLAUTH规则设置:仅允许SSLPEER('CN=mqclient,O=mq,C=us')且SSLCERTI('CN=ca-rootca')的客户端连接
  • Java客户端可正常连接,但使用amqputc工具连接时报错:

    AMQ9636E: SSL distinguished name does not match peer name, channel 'DEV.APP.SVRCONN'

排查与解决步骤

1. 校验客户端证书DN一致性

用openssl命令查看客户端证书的实际DN,确认是否与CHLAUTH规则中的SSLPEER完全匹配(MQ对DN的匹配严格区分大小写、空格及字段顺序):

openssl x509 -in <客户端证书文件路径> -noout -subject

2. 检查客户端配置文件

确保mqclient.ini正确指定客户端证书库路径:

SSL:
    KeyRepository=<客户端证书库路径,例:/var/mqm/ssl/key.kdb>

若使用CCDT文件,需确认:

  • CCDT中通道的SSLCIPH设置为ANY_TLS12
  • 客户端通过环境变量MQCCDTURL正确加载CCDT文件

3. 修正amqputc连接参数

执行amqputc时需明确指定SSL相关参数,示例:

amqputc -x <MQ主机>:<端口> -c DEV.APP.SVRCONN -k <客户端证书库路径> -s ANY_TLS12 <目标队列名>

若证书库设置了密码,需额外添加-p <证书库密码>参数,或确保同目录存在密码文件(.sth格式)。

4. 核查CHLAUTH规则优先级

用MQSC命令查看所有通道认证规则,确认目标允许规则的优先级高于其他DENY规则:

DISPLAY CHLAUTH(*) ALL

重点关注规则的TYPE、SSLPEER、SSLCERTI及ACTION字段,确保目标规则为ACTION(ALLOW)且未被其他规则覆盖。

5. 启用通道跟踪定位细节

若以上步骤未解决问题,可启用通道跟踪获取SSL握手日志:

ALTER CHANNEL(DEV.APP.SVRCONN) TRACE(ON)

尝试用amqputc连接后,查看队列管理器日志文件/var/mqm/qmgrs/QM1/errors/AMQERR01.LOG,日志会明确显示客户端提交的DN信息,可直接对比CHLAUTH规则定位不匹配点。

内容的提问来源于stack exchange,提问作者user10820864

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 20:35:04