Subversion Apache2.2 LDAPS认证失败。

问题描述 投票:2回答:1

操作系统:Redhat LinuxSubversion: 1.5.0Apache: 2.2.17 Redhat LinuxSubversion: 1.5.0Apache: 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.Ping master.ldap.ebupt.com is OK:

[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 is OK.

我的FTP LDAPS认证正常,如下图。

server:master.ldap.ebupt.com
port:636
Enable SSL:checked
Base DN:ou=staff,dc=ebupt,dc=com
anonymous:checked
Search Filter:(objectClass=*)
User DN attribute:uid
Search scope:subtree
svn ldap apache
1个回答
4
投票

"无法联系LDAP服务器 "可能意味着很多事情,但如果你的LDAP服务器是可以到达的,而且你在这里使用简单的SSL绑定,这意味着Apache不信任LDAP服务器出示的证书。

你需要告诉Apache关于证书的信息,这样它才能创建SSL连接。

Apache文档中的这一部分就是你需要的。http:/httpd.apache.orgdocs2.2modmod_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)复制到一个文件中。

现在将指令添加到Apache配置的顶部。

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

添加到Apache配置的顶部。重新启动Apache,就可以了。

© www.soinside.com 2019 - 2024. All rights reserved.