Php ldap“绑定到安全ldap服务器返回”;未知CA“;

Php ldap“绑定到安全ldap服务器返回”;未知CA“;,php,apache,ssl,active-directory,ldap,Php,Apache,Ssl,Active Directory,Ldap,试图配置PHP应用程序以安全地对远程LDAP服务器进行身份验证,我遇到了麻烦。安装了ldap工具,我可以连接到远程ldap服务器,但是检查错误日志,我看到了 Unable to bind to server: Can't contact LDAP server 这是由在我的应用程序中调用ldap\u bind触发的ldap\u connect不返回错误。我已验证我可以使用以下方式连接到ldap服务器: openssl s_client -connect ldap.service.company

试图配置PHP应用程序以安全地对远程LDAP服务器进行身份验证,我遇到了麻烦。安装了ldap工具,我可以连接到远程ldap服务器,但是检查错误日志,我看到了

Unable to bind to server: Can't contact LDAP server
这是由在我的应用程序中调用
ldap\u bind
触发的<代码>ldap\u 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)
tcpdump
wireshark
用于监视和分析来自我的应用程序的LDAP身份验证尝试的网络流量

tcpdump -s 1514 port 636 -w capture_file
wireshark
显示了一个致命错误:

TLSv1   Alert (Level: Fatal, Description: Unknown CA)
Apache的ssl.conf配置指向具有正确权限的文件,并且在启动/重新启动httpd时不会显示任何错误


感谢您的帮助/指点。请告诉我是否可以提供更多数据。

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


如果且仅当您的Web服务器和ldap主机位于同一网络内且由您单独管理,并且您确信无法在主机之间捕获数据时,您可以选择不使用ldap协议的SSL/TLS版本。

我们有来自InCommon的签名证书用于我们的应用服务器(app.company.com)。这在Apache的ssl.conf文件中被引用,Apache可以读取证书。很抱歉这个听起来很无知的问题,但是“证书路径”到底是什么?我们说的是非通用证书的目录路径吗?如果是这样,该路径是如何“安装”的?path=dir-path-to-incommon!但是ssl.conf是如何帮助ldap函数“了解”ssl的呢?ldap\u bind会使用Apache配置中的ssl设置还是其他什么?您提到我可能需要安装路径。什么工具用于此目的,以便我可以在手册页上阅读?不,我认为您应该使用/etc/openldap/ldap.conf(或检查服务器配置中的确切文件):)ssl.conf用于使您的apache主机具有启用ssl的站点