RabbitMQ - 信任存储允许所有连接通过

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

我对RabbitMQ的Trust Store有一个问题。我已经安装了github上显示的插件,插件确实加载了,它甚至在我将证书放入白名单文件夹时响应(如果我丢弃一个类似私钥的错误cert.pem我得到一个错误响应,证书不是这是一个证书,如果我放弃了一个好的,我得到这样的回复:信任商店:加载证书'cert.pem') - 这很好。但是,这就是问题的开始。即使白名单文件夹中没有证书,我也会传递与Java客户端建立的MQTT和AMQP连接。如果我正确理解了整个插件的想法,那么只有在白名单文件夹中存在证书时才应该通过它们,否则它们不应该通过。

有人碰巧遇到同样的事吗?

Tech:RabbitMQ on docker,Java客户端使用bouncycastle库为ssl

//编辑插件:Rabbitmq.config文件

[
    { rabbit, [
    { loopback_users, [ ] },
    {ssl_handshake_timeout, 100000},
            { tcp_listeners, [ 5672 ] },
            { ssl_listeners, [ 5671 ] },
            { ssl_options, [
                    { cacertfile, "/etc/tls/cacert.pem" },
                    { certfile, "/etc/tls/cert.pem" },
        { keyfile, "/etc/tls/key.pem" },
        { verify, verify_peer },
                    { fail_if_no_peer_cert, true },
        { reuse_sessions, false}
            ] },
            { default_pass, <<"guest">> },
            { default_user, <<"guest">> },
            { default_vhost, <<"/">> },
            { hipe_compile, false }
    ] },
    { rabbitmq_management, [ { listener, [
            { port, 15671 },
            { ssl, true },
            { ssl_opts, [
                    { cacertfile, "/etc/tls/cacert.pem" },
                    { certfile, "/etc/tls/cert.pem" },
                    { fail_if_no_peer_cert, false },
                    { keyfile, "/etc/tls/key.pem" },
                    { verify, verify_peer }
            ] }
    ] } ] },
    { rabbitmq_mqtt, [
            { vhost, <<"/">> },
            { exchange, <<"amq.topic">> },
            { default_user, <<"guest">> },
            { default_pass, <<"guest">> },
            { tcp_listeners, [ 1883 ] },
            { ssl_listeners, [ 8883 ] }
    ] },
    {rabbitmq_trust_store, [
         {directory,        "/etc/whitelist"}, 
         {refresh_interval, {seconds, 30}},
         {log_levels, [{connection, debug}, {channel, debug}, {federation, debug}]}
    ]}
].
java rabbitmq whitelist truststore
1个回答
0
投票

我几乎猜测基于提供的有限信息量,但您可能没有配置TLS来验证客户端的证书。您需要使用verify_peer RabbitMQ配置选项。我们有全面的文档,我建议您阅读 - https://www.rabbitmq.com/ssl.htmlhttps://www.rabbitmq.com/troubleshooting-ssl.html

另请注意,您列入白名单的证书是用于签署应用程序所在的客户端证书的CA证书,而不是客户端证书本身。

最后,快速获得帮助的最佳方法是提供一组文件,有人可以使用它们运行RabbitMQ和测试应用程序来查看问题。


注意:RabbitMQ团队监控rabbitmq-users mailing list,有时只回答StackOverflow上的问题。

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