无法使用 SSL 客户端证书且不使用 SASL 连接到 ActiveMQ 6.x

问题描述 投票:0回答:1

我有 activemq classic 6.x 版本。我试图禁用 SASL,导致消费者和发布者仅使用 SSL 证书进行连接。但它不起作用。在我的配置尝试和消费者的连接尝试期间,消费者中的日志显示服务器正在提供 SASL [PLAIN,ANONYMOUS]。

我在 activemq 文档中没有找到任何内容。该文档仅列出了 login.config 文件。

  • 目标
  1. 禁用 SASL
  2. 仅启用 ssl 客户端身份验证
  • 执行的步骤
  1. 使用客户端证书的“中间 CA”和“根 CA”创建信任存储
  2. 在 bin/activemq.xml 中配置传输连接器
  3. 配置login.config
  4. 配置users.properties
  5. 配置groups.properties

步骤部分的配置如下,顺序与上面相同 2. bin/active.xml 运输连接器

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

注意:needClientAuth=true 在传输层启用基于证书的身份验证,即“OSI 第 4 层”

  1. 配置login.config
activemq{
    
    org.apache.activemq.jaas.PropertiesLoginModule sufficient
        org.apache.activemq.jaas.properties.user="users.properties"
        org.apache.activemq.jaas.properties.group="groups.properties";
        
    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";
};

注意:TextFileCertificateLoginModule 在应用层(即“OSI 第 7 层”)启用基于证书的身份验证

如果未启用,则使用 SASL plain。

我尝试将此文件更改为仅 TextFileCertificateLoginModule 但没有成功

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";
};
  1. User.properties 和 cert-users.properties 添加证书 DN 详细信息
admin=adminpassword
usr-data-consumer=CN=text-cert-client-adjacent-system
  1. 组.属性
admins=admin,usr-data-consumer
authentication ssl activemq-classic sasl
1个回答
0
投票

我已经找到了答案,并编写了包含可能场景的干净实现。它可以在 Medium 上使用

解决方案链接

© www.soinside.com 2019 - 2024. All rights reserved.