почему-то я не могу настроить slapd для включения поддержки ldaps в Debian Lenny. Похоже, что OpenLDAP скомпилирован с GnuTLS вместо OpenSSL, что может быть частью проблемы.
Я добавил в slapd.conf следующие параметры:
TLSCipherSuite TLS_RSA_AES_256_CBC_SHA TLSCertificateFile /etc/ssl/certs/myhost.pem TLSCACertificatePath /etc/ssl/certs/ TLSCertificateKeyFile /etc/ssl/private/myhost.pem TLSVerifyClient never
и следующее в ldap.conf:
URI ldap:/// ldaps:/// TLS_REQCERT never
Если я пытаюсь запустить slapd, в журналах появляется следующая ошибка:
main: TLS init def ctx failed: -64
Может быть, сертификат, созданный openssl, не может быть прочитан GnuTLS?
Кто-нибудь из вас настраивал OpenLDAP на Debian с поддержкой ldaps? Если да, мы будем очень признательны за любые подсказки о том, как заставить его работать.
Спасибо.
РЕДАКТИРОВАТЬ: нашел рабочий TLSCipherSuite.
Имена шифров между Openssl и GnuTLS не совпадают.
Пример шифра GnuTLS:
slapd.conf:
TLSCipherSuite TLS_RSA_AES_256_CBC_SHA
Чтобы получить список имен шифров GnuTLS:
$ gnutls-cli -l
И убедитесь, что файлы «сертификатов» доступны для чтения и принадлежат пользователю openldap. Вы также можете добавить пользователя openldap в группу ssl-cert.
это также может быть связано с тем, что gnutls отказался от поддержки алгоритмов md2 и md5. см. примечания к выпуску gnutls на lenny.
Задача решена.
Ключ сервера может быть прочитан только пользователем root и ssl-cert группы. Поэтому я добавил пользователя openldap в группу ssl-cert, но каким-то образом slapd все равно не смог прочитать ключ сервера. Я скопировал ключ и изменил его владельца на openldap, и теперь он работает.