Я 2 дня пытался заставить OpenLDAP работать с TLS, где у меня есть сертификат сайта, подписанный моим собственным Промежуточным ЦС, который был подписан моим собственным Root ЦС. И независимо от того, что я пробовал, я получаю TLS init def ctx failed: -69 в syslog, и slapd не запускается.
Я запустил ldapmodify на следующем полученном код выхода 0:
dn: cn=config
changetype: modify
replace: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ldap/ca-certs/ca-ica.cert.crt
-
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ldap/sasl2/site.cert.crt
-
replace: olcTLSCertificateKeyFile:
olcTLSCertificateKeyFile: /etc/ldap/sasl2/site.key.crt
Я установил владельцем этих файлов openldap. У меня chmod 640 на site.key.crt. ca-ica.cert.crt был создан cat intermediate.crt ca.cert> ca-ica.cert.crt
Я знаю, что цепочка сертификатов проверяется, потому что я запускаю openssl verify -CAfile ca-ica.cert.crt site.cert.crt
, и он отлично работает.
Я даже пробовал использовать olcTLSCertificatePath
в каталоге c_reha sh. Ничего не работает.
Если я просто попробую простой самозаверяющий сертификат, все будет работать нормально, и я смогу подключиться к StartTLS.
Я примерно на 20% разбираюсь в OpenLDAP и примерно на 30% в управлении сертификатами. Но я в замешательстве.
Мы будем благодарны за любые идеи.
Обновлено Я запустил slapd с -d trace. Вот вывод системного журнала. Спасибо за помощь. /usr/sbin/slapd --version
возвращает ls (GNU coreutils) 8.21. Сертификаты представляют собой формат PEM, созданный с помощью openssl версии 1.01f от 6 января 2014 года. Да. Это старый. содержимое syslog с -d trace.
May 18 15:45:22 JohnLaptop kernel: [1017829.972053] type=1400 audit(1589834722.159:158): apparmor="DENIED" operation="open" profile="/usr/sbin/slapd" name="/home/john/openldap-certs/ca.crt" pid=21376 comm="slapd" requested_mask="r" denied_mask="r" fsuid=119 ouid=119
Я возился с ним и теперь получаю -1 вместо -69.