Subversion Apache2.2 LDAPS身份验证失败

时间:2011-02-24 09:17:58

标签: svn ldap apache

操作系统:Redhat Linux 颠覆:1.5.0 Apache: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 启用S​​SL:已选中 基本DN:ou = staff,dc = ebupt,dc = com 匿名:检查 搜索过滤器:(objectClass = *) 用户DN属性:uid 搜索范围:子树

感谢。

1 个答案:

答案 0 :(得分:3)

“无法联系LDAP服务器”可能意味着很多东西,但是如果您的LDAP服务器可以访问并且您使用的是简单的绑定SSL,那么这意味着Apache不信任该证书LDAP服务器正在呈现。

您需要告诉Apache有关证书的信息,以便它可以创建SSL连接。

Apache文档的这一部分是您所需要的:http://httpd.apache.org/docs/2.2/mod/mod_ldap.html#usingssltls

执行此操作的最佳方法是从LDAP服务器上签署证书的CA获取CA证书,并使用LDAPTrustedGlobalCert指令。一个例子,来自我的一个方框:

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

获取CA证书的方式各不相同;我的LDAP服务器正在运行由我们自己的CA签名的证书,因此我可以轻松获得CA证书。您的设置可能有所不同;咨询那些照顾你的LDAP服务器的人。

您还可以使用OpenSSL工具获取LDAP服务器提供的证书:

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,你就完成了。