RabbitMQ - Trust store пропускает все соединения через - PullRequest
1 голос
/ 15 марта 2019

У меня проблема с Trust Store от RabbitMQ.Я установил плагин, как показано на github, плагин действительно загружается, он даже отвечает, когда я перетаскиваю сертификаты в папку белого списка (если я сбрасываю неверный cert.pem, например, закрытый ключ, я получаю сообщение об ошибке, что сертификат нене сертификат, если я отброшу хороший, я получу ответ, подобный этому: хранилище доверия: загрузка сертификата 'cert.pem') - и это здорово.Но именно здесь начинаются проблемы.соединения MQTT и AMQP, которые я устанавливаю с моим клиентом Java, проходят, даже если в папке белого списка нет сертификатов.Если я правильно понимаю идею всего плагина, их следует пропустить только в том случае, если в папке белого списка есть сертификаты, в противном случае их не должно быть.

Кто-нибудь сталкивался с такой же проблемой?

Технология: RabbitMQ на докере, 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}]}
    ]}
].

1 Ответ

0 голосов
/ 15 марта 2019

Я в значительной степени догадываюсь, основываясь на ограниченном количестве предоставленной информации, но у вас, вероятно, не настроен TLS для проверки сертификата клиента.Вам необходимо использовать опцию конфигурации verify_peer RabbitMQ.У нас есть полные документы, которые я предлагаю вам прочитать - https://www.rabbitmq.com/ssl.html, https://www.rabbitmq.com/troubleshooting-ssl.html

Также обратите внимание, что сертификаты, которые вы включаете в белый список, являются сертификатами CA, используемыми для подписи сертификатов клиентов, которые вашиприложения, а не сами клиентские сертификаты.

Наконец, лучший способ быстро получить помощь - предоставить набор файлов, которые кто-то может использовать для запуска RabbitMQ, и тестовое приложение, чтобы увидеть проблему.


ПРИМЕЧАНИЕ: команда RabbitMQ контролирует список рассылки rabbitmq-users и только иногда отвечает на вопросы о StackOverflow.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...