使用SSL证书连接IBM MQ返回2035错误仍要求用户名密码如何解决
你遇到的2035权限拒绝错误,和SSLPEER日志无关,核心原因是SSL证书认证和用户名密码认证是IBM MQ中两个独立的校验逻辑,你当前的配置强制要求客户端提交用户名密码,即便已经通过SSL证书校验,也不会自动跳过账号密码验证。
具体配置问题
从你提供的配置可以定位到触发校验的规则:
你为DEV.APP.SVRCONN通道配置的TYPE=ADDRESSMAP类型CHLAUTH规则中,明确设置了CHCKCLNT(REQUIRED),该配置优先级高于队列管理器级别的DEV.AUTHINFO中CHCKCLNT(REQDADM)的配置,强制所有连接该通道的客户端必须提交合法的操作系统用户名和密码,和是否使用SSL无关。
日志中输出的SSLPEER信息只是连接时的证书属性记录,并非你配置了SSLPEER拦截规则,无需处理。
解决方案
根据你的需求(持有合法证书即可连接,无需用户名密码),执行以下MQSC配置修改即可:
- 进入队列管理器命令行:
RUNMQSC QM1
- 修改DEV.APP.SVRCONN的CHLAUTH规则,关闭强制用户名密码校验:
ALTER CHLAUTH(DEV.APP.SVRCONN) TYPE(ADDRESSMAP) ADDRESS(*) CHCKCLNT(OPTIONAL)
如果需要所有合法SSL客户端都用固定的app用户权限运行,不需要继承客户端传入的用户,可同步修改用户来源配置:
ALTER CHLAUTH(DEV.APP.SVRCONN) TYPE(ADDRESSMAP) ADDRESS(*) USERSRC(MAP) MCAUSER(app) CHCKCLNT(OPTIONAL)
- 刷新安全配置使修改生效:
REFRESH SECURITY TYPE(CONNAUTH)
修改完成后重新运行amqssslc测试命令即可正常连接,不需要额外传入用户名密码参数。
内容的提问来源于stack exchange,提问作者Wilko van der Veen
相关产品推荐
相关产品推荐

