操作系统: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 启用SSL:已选中 基本DN:ou = staff,dc = ebupt,dc = com 匿名:检查 搜索过滤器:(objectClass = *) 用户DN属性:uid 搜索范围:子树
感谢。
答案 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,你就完成了。