我正在尝试使用 apache 设置 LDAPS,以便登录到我的网站的用户将根据我的 AD 进行身份验证,并且此身份验证流量本身是加密的。
Apache 版本 2.2.15 在 Red Hat 6.2 上运行
AD 位于 Windows 2008 R2 上
这一切都适用于普通的 LDAP,只是当我尝试让它与 LDAPS 一起工作时它失败了。
运行 wireshark 跟踪,我可以看到 TCP 握手,([SYN],[SYN,ACK],[ACK]),然后有一个 8 秒的延迟,我预计 ClientHello 会进入,但它没有发生。
由于 TCP 连接被断开,我刚刚从 apache 端收到了 [FIN,ACK]。
那么,我该如何开始解决这个问题呢?
在我的 apache conf 中,我添加了
LDAPTrustedGlobalCert CA_BASE64 /path/to/my/orgs/root/cert LDAPVerifyServerCert On|Off # 均已尝试 LDAPTrustedMode SSL|TLS # 均已尝试
在我的 ldap url 中,我已将 ldap:// 更改为 ldaps://,并更改了要连接的端口
已尝试端口 636 和 3269(全局目录 SSL)
错误日志显示 [LDAP: ldap_simple_bind_s() 失败][无法联系 LDAP 服务器]
没有启动防火墙(iptables、Windows 防火墙或中间硬件防火墙),因此应该没有流量限制。
有任何想法吗?
答案1
如果您使用“ldaps://IP地址.......' 在您的 ldap url 中尝试'ldaps://完整主机名......'
答案2
我发现“LDAPTrustedGlobalCert”指向的证书文件中的文件权限过于严格
但是,使用“LDAPVerifyServerCert Off”,我认为读取该根证书会被绕过,并且我不需要担心权限?
没关系,现在已经修好了