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

ActiveMQ 6.x禁用SASL仅通过SSL客户端证书连接失败求助

ActiveMQ Classic 6.x:禁用SASL并仅启用SSL客户端认证解决方案

问题背景

使用ActiveMQ Classic 6.x时,尝试禁用SASL、仅通过SSL证书完成客户端认证失败,消费者连接日志显示服务器仍提供SASL [PLAIN, ANONYMOUS]认证方式,官方文档仅提及login.config配置,未给出明确的SASL禁用步骤。

目标

  • 完全禁用SASL认证
  • 仅启用基于SSL证书的客户端认证

现有配置问题分析

你已完成信任库创建、传输连接器配置、JAAS及用户组文件配置,但未在传输层明确禁用SASL,且JAAS配置曾混合密码登录模块,导致SASL机制未被彻底关闭。

修正后的配置步骤

1. 更新传输连接器配置(activemq.xml)

在SSL和AMQP-SSL传输连接器的URI中添加saslEnabled=false参数,直接关闭传输层的SASL支持:

<transportConnector name="ssl" uri="ssl://0.0.0.0:61617?transport.closeAsync=false&amp;needClientAuth=true&amp;saslEnabled=false"/>
<transportConnector name="amqps" uri="amqp+ssl://0.0.0.0:5673?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600&amp;needClientAuth=true&amp;saslEnabled=false"/>

注:needClientAuth=true确保传输层强制要求客户端提供合法证书,saslEnabled=false彻底禁用SASL认证选项。

2. 简化JAAS配置(login.config)

仅保留证书登录模块,移除密码登录相关的PropertiesLoginModule,避免SASL PLAIN认证触发:

activemq{
    org.apache.activemq.jaas.TextFileCertificateLoginModule required
        debug=true
        reload=true
        org.apache.activemq.jaas.textfiledn.user="cert-users.properties"
        org.apache.activemq.jaas.textfiledn.group="groups.properties";
};

3. 清理证书用户配置(cert-users.properties)

移除密码登录条目,仅保留证书DN与用户名的映射:

usr-data-consumer=CN=text-cert-client-adjacent-system

原配置中的admin=adminpassword属于密码登录项,若无需密码认证可直接删除,如需保留请移至单独的users.properties文件。

4. 确认启动参数

确保ActiveMQ启动时正确加载JAAS配置,在启动脚本或bin/env中验证以下参数存在:

-Djava.security.auth.login.config=${ACTIVEMQ_CONF}/login.config

验证

重启ActiveMQ后,检查服务器日志确认无SASL认证相关的支持提示。使用配置了合法客户端证书的生产者/消费者连接,验证可正常认证;尝试使用密码登录应被拒绝。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 09:38:12