Назад | Перейти на главную страницу

Как безопасно подключиться к нескольким различным серверам LDAPS (Debian)

Я пытаюсь подключиться к нескольким различным серверам LDAPS. Во многих документах, которые я видел, рекомендуется устанавливать TLS_REQCERT never, но мне кажется ужасно небезопасным не проверять сертификат. Итак, я установил это на demand.

Во всей документации, которую я видел, говорится, что мне нужно обновить ldap.conf с помощью директивы TLS_CACERT, указывающей на файл .pem. У меня есть этот файл .pem, настроенный с сертификатом с сервера LDAP №1, и соединения ldaps работают нормально.

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

Однако, когда я рассказал коллеге о том, что я сделал, он прозвучал так, будто небо падает - размещение двух несвязанных сертификатов в один файл .pem, по-видимому, худшее с тех пор ... когда-либо.

Есть ли более приемлемый способ сделать это? Или это единственный приемлемый способ?

Объединение несвязанных сертификатов - не редкость. Это способ, которым RedHat управляет своими центрами сертификации. Однако этот метод может затруднить удаление сертификатов, которым вы больше не хотите доверять. Возможно, вы захотите воспользоваться методом каталога хешированных сертификатов. Это способ, которым debian управляет своими центрами сертификации.

  1. Поместите свои сертификаты в один каталог (например, /etc/ldap/cacerts).
  2. Бегать c_rehash с участием root привилегии в отношении вашего каталога сертификатов CA (например, sudo c_rehash /etc/ldap/cacerts).
  3. Удалите опцию TLS_CACERT и установите TLS_CACERTDIR чтобы указать на ваш каталог сертификатов CA.
  4. Не забудьте бежать c_rehash каждый раз, когда вы добавляете сертификат и запускаете sudo find -L /etc/ldap/cacerts -type l -exec rm {} + каждый раз, когда вы удаляете один. (Повторный запуск команды без каких-либо изменений не имеет вредных последствий, но бессмыслен.)