RabbitMQ LDAP через SSL проверяет сертификат - PullRequest
1 голос
/ 24 апреля 2020

При использовании rabbitmq_auth_backend_ldap, если мы используем ssl, необходимо ли указывать параметры SSL, чтобы убедиться, что мы говорим с нужным сервером, используя такие параметры, как:

{ssl_options, [ {server_name_indication, "abc.com"},
                    {verify, verify_peer},
                    {depth, 5}]},

Обратите внимание, что я не заинтересованы в проверке подлинности сертификата клиента на сервере Ldap, но только для проверки того, действительно ли я говорю с нужным сервером, что не может быть обеспечено, если я не проверю SN или аналогичный сертификат из сертификата. Браузеры делают это автоматически, но как это делает RabbitMQ.

Если SSL-сертификат, представленный сервером, подписан доверенным root, например, GoDaddy или другим, следует ли мне упоминать сертификаты, которые я доверяю.

Ответы [ 2 ]

1 голос
/ 24 апреля 2020

Я проверяю SN или аналогичный из сертификата. Браузеры делают это автоматически, но как RabbitMQ делает это.

Вот ответ на ваш вопрос.

Каждый инструмент с поддержкой TLS и реализация TLS, включая Erlang / OTP и RabbitMQ, имеют возможность пометить набор сертификатов как доверенные. В Linux и других UNIX -подобных системах это обычно каталог, управляемый суперпользователями. Сертификаты CA в этом каталоге будут считаться доверенными, равно как и сертификаты, выданные ими (например, предоставленные клиентами). Расположение каталога доверенных сертификатов может отличаться в зависимости от дистрибутива, операционных систем и выпусков

Подробнее здесь

Если вы хотите иметь свое собственное хранилище доверенных сертификатов. Вы можете рассмотреть ниже вещи.

https://rabbitmq.docs.pivotal.io/37/rabbit-web-docs/ssl.html#keys -и-сертификаты https://github.com/rabbitmq/rabbitmq-trust-store

0 голосов
/ 24 апреля 2020

Так что, как минимум, без приведенных ниже конфигураций я чувствую, что безопасность SSL не является полной для установки LDAP. В случае LDAP соединение устанавливается с сервера RMQ (через клиент erlang) к серверу LDAP, поэтому в этот момент времени SSL-сертификаты представляются сервером LDAP.

Сервер RMQ (клиент) -> Сервер LDAP (сервер)

и Если не указаны следующие параметры, сертификат не проверен.

{servers, ["abc.com"]},
    {timeout, 10000},
    {use_ssl,     true},
    {ssl_options, [ {cacertfile, "/etc/ssl/certs/ca-certificates.crt"},
                    {server_name_indication, "abc.com"},
                    {verify, verify_peer},
                    {depth, 5}]},
    {port, 636}

verify: verify_peer

  • указывает, что мы предпочитаем, чтобы цепочка сертификатов проверялась
  • будет проверено, что цепочка сертификатов заканчивается одним из доверенных сертификатов, упомянутых в cacertfile.

cacertfile

  • будет указывать на сертификаты для доверия.
  • Можно указать на файл, который содержит список доверенных сертификатов в --- Начать сертификат --- --- Конец сертификата - формат
  • Если сертификаты серверов LDAP подписаны доверенными root сертификатами, мы можем указать эту переменную на /etc/ssl/certs/ca-certificates.crt .
  • Если сертификаты сервера являются самозаверяющими, то укажите файл, содержащий соответствующие сертификаты.

имя_сервера_индикации: ab c .com

  • this обеспечивает, что это просто не какой-то сервер, с которым мы говорим, но только ab c .com
  • проверит, что SN сертификатов сервера имеет глубину ab c .com.

:

  • это указывает на количество сертификатов в цепочке сертификатов, которые мы пройдем до того, как оно должно завершиться одним из доверенных сертификатов, которые у нас есть.
  • оставьте это большее число, чем нет сертификатов в цепочке сертификатов на ваших серверах

Это без какой-либо проверки подлинности сертификата клиента между сервером LDAP и сервером RMQ.

...