В настоящее время я настраиваю два синхронизированных сервера OpenLDAP, доступ через starttls / ldaps. На клиенте / подчиненном у меня были проблемы с подключением TLS. Я использую конфигурацию на основе каталогов, и olcTLSCACertificateFile: /etc/ssl/certs/root-ca.pem
установлен, root-ca.pem
читается пользователем ldap
.
Однако соединение starttls и ldaps не удается:
ldapwhoami -x -H ldap://192.168.56.201/ -ZZ
ldap_start_tls: Connect error (-11)
additional info: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed (unable to get local issuer certificate)
Если я добавлю ldaprc
файл в текущий каталог со следующей записью
TLS_CACERT /etc/ssl/certs/root-ca.pem
все работает как положено.
Так кажется olcTLSCACertificateFile
настройка игнорируется, или могут быть другие ошибки / неправильные настройки, которые мне не хватает? ОС - Suse Enterprise 11sp4, версия OpenLDAP - 2.4.26.
ldapwhoami - это клиентский инструмент LDAP. Он не использует параметр olcTLSCACertificateFile. Это параметр slapd на стороне сервера.
Вам нужно где-то указать, что клиентские инструменты понимают, что вы доверяете ЦС. Это можно сделать (как вы это сделали) в файле ldaprc, в глобальном файле /etc/ldap/ldap.conf, слишком разрешив проверку вашего ЦС (TLS_REQCERT разрешить ... не рекомендуется), или, может быть, лучший вариант - добавить свой ЦС, которому система доверяет, выполнив это (по крайней мере, в Debian, ymmv):
/usr/local/share/ca-certificates
на клиентской машине.# update-ca-certificates
/etc/ssl/certs/ca-certificates.crt
набор центров сертификации, которые уже должны быть указаны в вашем файле /etc/ldap/ldap.conf, и вашему центру сертификации будут доверять ldapwhoami и другие инструменты.