ldap_bind保护LDAP服务器返回“未知CA”

时间:2014-01-08 21:03:47

标签: php apache ssl active-directory ldap

尝试配置PHP应用程序以安全地对远程LDAP服务器进行身份验证,并且遇到了问题。已安装ldap工具,我可以连接到远程LDAP服务器,但检查error_log,我看到了

Unable to bind to server: Can't contact LDAP server

这是通过在我的应用程序中调用ldap_bind来触发的。 ldap_connect不会返回错误。我已经验证我可以使用:

连接到ldap服务器
openssl s_client -connect ldap.service.company.com:636

SSL-Session:
Protocol  : TLSv1.2
Cipher    : AES256-SHA
Session-ID: (snip)
Session-ID-ctx: 
Master-Key: (snip)
Key-Arg   : None
Krb5 Principal: None
PSK identity: None
PSK identity hint: None
Start Time: 1389213908
Timeout   : 300 (sec)
Verify return code: 0 (ok)

tcpdumpwireshark用于监控和分析来自我的应用程序的尝试LDAP身份验证的网络流量。

tcpdump -s 1514 port 636 -w capture_file

wireshark发现致命错误:

TLSv1   Alert (Level: Fatal, Description: Unknown CA)

Apache的ssl.conf配置指向具有正确权限的文件,启动/重新启动httpd时不会显示错误。

帮助/指针表示赞赏。如果我能提供更多数据,请告诉我。

1 个答案:

答案 0 :(得分:1)

您可能正在使用636端口上的ldap主机上的签名证书。客户端(您的PHP服务器)拒绝此证书作为证书颁发机构而不是其已知/有效的ca. 获取真实的SSL证书或在您的网络服务器上安装证书路径。

如果且仅当如果,您的网络服务器和ldap主机位于同一网络中且完全由您管理,并且您确定无法在主机之间捕获数据,则可以选择不使用SSL / TLS版本的ldap协议..