我在为我的目录设置 LDAPS 身份验证时遇到了困难/var/svn
。
以下是我的 Apache 配置文件:
LDAPTrustedGlobalCert CERT_BASE64 /etc/openldap/cacerts/Cert.pem
<VirtualHost *:80>
ServerName myserver.com
DocumentRoot /var/www
<Location /svn>
DAV svn
SVNParentPath /var/svn
AuthType Basic
AuthBasicProvider ldap
AuthLDAPBindDN "mybind_dn"
AuthLDAPBindPassword "mypassword"
AuthLDAPURL "ldaps://my_ldap_server:636/credentials"
AuthName "Authorized Personnel Only"
Require valid-user
</Locaion>
</VirtualHost>
当我尝试访问“myserver.com/svn”时,我收到“内部服务器错误”(500),错误日志中没有任何内容显示。我知道 LDAPS 在操作系统级别运行(我有一个测试脚本可以证实这一点),所以我真的不知所措。
有任何想法吗?
编辑:如果我省略 LDAP 身份验证并仅使用基本身份验证(使用 .htpasswd 文件),它就可以正常工作。
答案1
事实证明,这是一个“特殊情况”的问题,但我会发布我的发现来帮助遇到类似问题的人。
这是因为我的 LDAP 服务器的安全证书无效。由于 Apache 不知道如何处理“错误”的证书,它惊慌失措并丢弃了所有内容。要强制 Apache 忽略错误证书,请在文件中放置以下行httpd.conf
:
LDAPVerifyServerCert off
这样做,然后快速重启 apache 就给了我一直在寻找的结果。