我有 activemq classic 6.x 版本。我试图禁用 SASL,导致消费者和发布者仅使用 SSL 证书进行连接。但它不起作用。在我的配置尝试和消费者的连接尝试期间,消费者中的日志显示服务器正在提供 SASL [PLAIN,ANONYMOUS]。
我在 activemq 文档中没有找到任何内容。该文档仅列出了 login.config 文件。
步骤部分的配置如下,顺序与上面相同 2. bin/active.xml 运输连接器
<transportConnector name="ssl" uri="ssl://0.0.0.0:61617?transport.closeAsync=false&needClientAuth=true&wantClientAuth=true"/>
<transportConnector name="amqps" uri="amqp+ssl://0.0.0.0:5673?maximumConnections=1000&wireFormat.maxFrameSize=104857600&needClientAuth=true"/>
注意:needClientAuth=true 在传输层启用基于证书的身份验证,即“OSI 第 4 层”
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";
};
admin=adminpassword
usr-data-consumer=CN=text-cert-client-adjacent-system
admins=admin,usr-data-consumer
我已经找到了答案,并编写了包含可能场景的干净实现。它可以在 Medium 上使用