ldapsearch ищет в / etc / openldap / cacerts свое хранилище доверенных сертификатов CA, и, по-видимому, он не настроен, и поэтому он отклоняет сертификат, поскольку не может создать цепочка доверия для этого. Если бы ldapsearch использовал OpenSSL, ему потребовалась бы коллекция формата «hashdir», созданная, например, программой Red Hat «authconfig», или один файл с плоским списком доверенных сертификатов. Ссылка здесь на "moznss" предполагает, что этот ldapsearch построен против Mozilla NSS, и в этом случае вам нужно использовать "certutil" для создания базы данных сертификата (или, лучше, укажите его в системном хранилище сертификатов NSS, если оно есть) .
В системах, где он работает, ldapsearch должен иметь рабочее хранилище сертификатов,
ldapsearch скажет «Не удается связаться с сервером LDAP», если не может проверить сертификат TLS. Добавьте -d1
в команду ldapsearch и проверьте выходные строки, начинающиеся с «TLS:», чтобы получить дополнительную информацию о том, не работает ли соединение TLS и почему.
Решение зависит от вашей установки:
Если вы используете недействительный сертификат , вы можете принудительно принять его, настроив / etc / openldap / ldap.conf
с
TLS_REQCERT разрешить
или
TLS_REQCERT никогда
Если вы используете действительный сертификат , вероятно, ваша установка ldap не знает, где находится хранилище доверенных сертификатов CA (возможно, в зависимости от вашей установки OpenSSL). Затем вы можете попробовать указать его местоположение и принудительно проверить конфигурацию /etc/openldap/ldap.conf
с помощью
TLS_CACERT / etc / openldap / cacert
Требование TLS_REQCERT
/ etc / openldap / cacert
может быть этим или находиться по любому пути. Он должен содержать цепочку сертификатов вашего ЦС. Это может быть один файл с плоским списком доверенных сертификатов.
Пути примечания зависят от провайдера ldap. Это может быть / etc / ldap
или / etc / openldap
или около того.