Мне сложно настроить аутентификацию LDAPS для моего каталога /var/svn
.
Вот файл конфигурации, который у меня есть для Apache:
LDAPTrustedGlobalCert CERT_BASE64 /etc/openldap/cacerts/Cert.pem
<VirtualHost *:80>
ServerName myserver.com
DocumentRoot /var/www
<Location /svn>
DAV svn
SVNParentPath /var/svn
AuthType Basic
AuthBasicProvider ldap
AuthLDAPBindDN "mybind_dn"
AuthLDAPBindPassword "mypassword"
AuthLDAPURL "ldaps://my_ldap_server:636/credentials"
AuthName "Authorized Personnel Only"
Require valid-user
</Locaion>
</VirtualHost>
Когда я пытаюсь получить доступ к myserver.com/svn, я получаю «Internal Server Error» (500), и в журналах ошибок ничего не отображается. Я знаю, что LDAPS работает на уровне операционных систем (у меня есть тестовый сценарий, подтверждающий это), поэтому я действительно в растерянности.
Любые идеи?
РЕДАКТИРОВАТЬ: если я оставлю аутентификацию LDAP и буду использовать только базовую аутентификацию (с файлом .htpasswd), она будет работать нормально.
Как оказалось, это была проблема «особого случая», однако я опубликую свои выводы, чтобы помочь всем, у кого есть подобная проблема.
Это произошло из-за того, что на моем сервере LDAP был недействительный сертификат безопасности. Поскольку Apache не знал, что делать с «неисправным» сертификатом, он запаниковал и просто все бросил. Чтобы заставить apache игнорировать ошибочные сертификаты, поместите следующую строку в свой httpd.conf
файл:
LDAPVerifyServerCert off
Выполнение этого и быстрый перезапуск apache дали мне результаты, которые я искал.