Apache LDAPS 身份验证

Apache LDAPS 身份验证

我在为我的目录设置 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 就给了我一直在寻找的结果。

相关内容