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

SSL для OpenLDAP на Centos 7 не работает

В настоящее время я пытаюсь настроить SSL для OpenLDAP на Centos 7 с помощью самоподписанного сертификата. LDAP работает без SSL. Я сделал следующие команды:

Создание сертификата / ключа и смена владельца:

openssl req -new -x509 -nodes -out /etc/openldap/certs/ldap.cert -keyout /etc/openldap/certs/ldap.key -days 730
chown -R ldap:ldap /etc/openldap/certs/ldap*

Создание файла ldif для публикации изменений сертификата:

dn: cn=config
changetype: modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/openldap/certs/ldap.key

dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/openldap/certs/ldap.cert

Публикация изменений с помощью ldapmodify -Y EXTERNAL -H ldapi:/// -f certs.ldif

После этого обновляю /etc/sysconfig/slapd как это:

SLAPD_URLS="ldapi:/// ldap:/// ldaps:///"

Я перезапустил slapd демон и проверил, что LDAP прослушивает порт 636, что и происходит.

На клиенте я установил пакеты openldap-clients и nss-pam-ldapd. Я настроил хост, чтобы я мог войти в систему с моими пользователями LDAP:

authconfig --enableldap --enableldapauth --ldapserver=ldaps://ldap.local --ldapbasedn="dc=ldap,dc=local" --enablemkhomedir --disableldaptls --update

в /etc/nslcd.conf я добавил tls_reqcert чтобы разрешить самоподписанные сертификаты.

Наконец, если я попытаюсь получить информацию о пользователе с помощью getent passwd user он ничего не возвращает в качестве вывода. Пользователь действительно существует в каталоге LDAP. Если я попытаюсь сделать ldapsearch Я получаю следующую ошибку:

ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)

Я не совсем уверен, что могу сделать, чтобы решить эту проблему на данный момент.

Любая помощь будет оценена.

С уважением,

Маркус

Проблема в том, что сервер OpenLDAP, поставляемый с RHEL / CentOS, связан с libnss Mozilla, но используемые вами файлы сертификатов / ключей подходят только для OpenSSL lib. libnss требует парольную фразу в "ключевом" файле и файле сертификата, указывающую на базу данных сертификата / ключа libnss.

Так как Red Hat сбросит пакет openldap-серверы из их распределения в любом случае я настоятельно рекомендую использовать пакеты RPM, скомпилированные проектом LDAP Toolbox, которые связаны с OpenSSL:

Проект LTB - OpenLDAP RPMs / репозиторий Yum

RPM LTB устанавливают компоненты OpenLDAP, полностью отделенные от пакетов ОС, в / usr / local / openldap. Таким образом, RPM LTB не конфликтуют с другими пакетами OpenLDAP.

Обратите внимание, что путь по умолчанию для сокета ldapi: // сборок LTB также находится ниже / usr / local / openldap. Так, например, вместо ldapmodify вы должны использовать / usr / local / openldap / bin / ldapmodify.

Пожалуйста, обратитесь к Руководство администратора OpenLDAP 2.4 чтобы понять, как настроить сервер OpenLDAP с нуля. Хотя это кажется сложнее, чем использование подготовленной конфигурации пакета ОС, это дает вам лучшее понимание методов конфигурации OpenLDAP, ведущих к более надежной работе.

Проверьте /usr/libexec/openldap/create-certdb.sh создавать /etc/ldap/certs/ файлы.

Это должно генерировать правильные файлы, насколько я помню, он использует /etc/pki/ как источник. Но я не уверен в этом на 100%.