Проверка подлинности Subversion Apache2.2 LDAPS не удалась - PullRequest
1 голос
/ 24 февраля 2011

ОС: Redhat Linux Subversion: 1.5.0 Апач: 2.2.17

httpd.conf:

LDAPSharedCacheSize 200000
LDAPCacheEntries 1024
LDAPCacheTTL 600
LDAPOpCacheEntries 1024
LDAPOpCacheTTL 600

<Location /svn>
DAV svn
SVNParentPath /home/svnroot/repository
AuthzSVNAccessFile /home/svnroot/repository/svn_access_file
AuthType Basic
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL "ldaps://master.ldap.ebupt.com:636/OU=staff,DC=ebupt,DC=com?uid?sub?(objectClass=*)" SS
L
AuthName "Subversion.resository"
Require valid-user
</Location>

Apache error_log:

[Thu Feb 24 16:48:00 2011] [debug] mod_authnz_ldap.c(403): [client 10.1.85.181] [25242] auth_ldap a
uthenticate: using URL ldaps://master.ldap.ebupt.com:636/OU=staff,DC=ebupt,DC=com?uid?sub?(objectCl
ass=*)
[Thu Feb 24 16:48:00 2011] [info] [client 10.1.85.181] [25242] auth_ldap authenticate: user jinjian
kang authentication failed; URI /svn [LDAP: ldap_simple_bind_s() failed][Can't contact LDAP server]

ping master.ldap.ebupt.com в порядке.

Моя аутентификация FTP LDAPS в порядке, как показано ниже:

Сервер: master.ldap.ebupt.com порт: 636 Включить SSL: проверено Базовое DN: ou = staff, dc = ebupt, dc = com анонимный: проверено Фильтр поиска: (objectClass = *) Атрибут DN пользователя: uid Область поиска: поддерево

Спасибо.

1 Ответ

3 голосов
/ 27 февраля 2011

«Не удается связаться с сервером LDAP» может означать множество вещей, но если ваш сервер LDAP доступен и вы используете простое связывание по SSL, как здесь, это означает, что Apache не доверяет сертификату LDAPсервер представляет.

Вам необходимо сообщить Apache о сертификате, чтобы он мог создать соединение SSL.

Этот раздел документации Apache - это то, что вам нужно: http://httpd.apache.org/docs/2.2/mod/mod_ldap.html#usingssltls

Лучший способ сделать это - получить сертификат CA от CA, который подписал сертификат на ваших серверах LDAP, и использовать директиву LDAPTrustedGlobalCert.Например, из одной из моих коробок:

LDAPTrustedGlobalCert CERT_BASE64 /etc/openldap/cacerts/cacert.pem

Способ получения сертификата CA варьируется;на моих серверах LDAP работают сертификаты, подписанные нашим собственным центром сертификации, поэтому я могу легко получить сертификат центра сертификации.Ваши настройки могут отличаться;проконсультируйтесь с тем, кто присматривает за вашим сервером LDAP.

Вы также можете получить сертификат, который представляет сервер LDAP, используя инструменты OpenSSL:

openssl s_client -connect your.ldap.host:636 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'

Это отобразит сертификат.Скопируйте все (включая BEGIN CERTIFICATE и END CERTIFICATE) в файл.

Теперь добавьте директиву:

LDAPTrustedGlobalCert CERT_BASE64 /path/to/your/cert/file

в начало вашей конфигурации Apache.Перезапустите Apache, и все готово.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...