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

Аутентификация Apache LDAPS

Мне сложно настроить аутентификацию 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 дали мне результаты, которые я искал.