Невозможно использовать атрибуты openldap olcTLS

Я работал над переносом экземпляра openldap с CentOS7 на CentOS8. RHEL устарел в пакетах openldap в RHEL8, поэтому я пытался перейти на пакеты Symas.

С установленными пакетами Symas я действительно смог перенастроить все и работать, за исключением TLS для STARTTLS. Похоже, что он не распознает ни один из атрибутов olcTLS*. Я предполагаю, что это как-то связано со схемой, но если бы кто-то мог указать мне правильное направление, я был бы признателен.

tls.ldif:

dn: cn=config
changetype: modify
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/openldap/certs/ca.crt

Результаты:

# ldapmodify -Y EXTERNAL -H ldapi:/// -f tls.ldif
modifying entry "cn=config" 
ldap_modify: Other (e.g., implementation specific) error (80)
#

SELinux в настоящее время отключен, пользователь/группа LDAP рекурсивно владеет всем в «/etc/openldap». Поиск в Google дал множество результатов, но ни один из них не касается процедур для TLS/STARTTLS в CentOS8, которые я нашел.


person M4v    schedule 23.05.2020    source источник
comment
Я отмечаю, что изначально было сказано «недопустимый атрибут type». Заставляет меня задаться вопросом, загружена ли у вас необходимая схема. Поднимите уровень отладки и посмотрите журнал сервера. Теперь, возможно, что-то не так с сертификатом или его расположением.   -  person user207421    schedule 24.05.2020


Ответы (1)


После тонны копаний я решил, что проблема связана с моим закрытым ключом, и поэтому он вообще отказался устанавливать параметры TLS. Но я буду включать все, что я должен был проверить здесь для этой ошибки.

Итак, для начала вам нужно убедиться, что открытые/закрытые ключи производят один и тот же хеш (вот где была моя проблема) -

openssl x509 -noout -modulus -in /path/to/public.crt | openssl md5
openssl rsa -noout -modulus -in /path/to/private.key | openssl md5

Затем из руководства по Debian -

Если изменения завершаются с ошибкой ldap_modify: Другая (например, связанная с реализацией) ошибка (80), проверьте пути к файлам на наличие опечаток и убедитесь, что файлы доступны для чтения пользователю openldap.

Используйте sudo для запуска команд от имени пользователя ldap, чтобы проверить это. Например:

sudo -u ldap cat /path/to/public.crt

Or

sudo -u ldap file /path/to/public.crt

Возможно, вам придется дополнительно изучить SELinux, если вышеперечисленное не работает.

person M4v    schedule 26.05.2020