Svn Subversion Apache2.2 LDAPS身份验证失败

Svn Subversion Apache2.2 LDAPS身份验证失败,svn,ldap,apache,Svn,Ldap,Apache,操作系统:Redhat Linux Subversion: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 AuthzSVNAc

操作系统:Redhat Linux Subversion: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>
ping master.ldap.ebupt.com正常

我的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
“无法联系LDAP服务器”可能意味着很多事情,但如果您的LDAP服务器是可访问的,并且您在这里使用的是简单的SSL绑定,则意味着Apache不信任LDAP服务器提供的证书

您需要将证书告知Apache,以便它可以创建SSL连接

Apache文档的这一部分是您需要的:

最好的方法是从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'
这将显示证书。将所有内容(包括开始证书和结束证书)复制到文件中

现在添加指令:

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

到Apache配置的顶部。重新启动Apache,就完成了。

我通过“curl-O”下载证书文件,并将“LDAPTrustedGlobalCert\u BASE64/path/to/my/cert/file”添加到我的httpd.conf中,一切正常。谢谢顺便说一下,我发现如果添加'LDAPVerifyServerCert off',注释'LDAPTrustedGlobalCert…',一切都还可以。LDAPVerifyServerCert指令的默认值为on。SVN 1.5已存在12年,多年不受支持。最新版本是1.13.x。公平地说,问题本身已经有9年了。SVN1.5当时只有3岁。@VonC哈哈,我没有注意到。该问题出现在最近活动的问题列表中,我没有检查日期。@bahrep Sill,你是对的。早就该升级了。
LDAPTrustedGlobalCert CERT_BASE64 /path/to/your/cert/file