使用PHP绑定到LDAP服务器时需要帮助忽略服务器证书

时间:2010-10-05 18:04:29

标签: php ldap

我正在尝试使用PHP绑定到LDAP服务器。这是一个相当简单的过程,除了我无法绕过我得到的证书错误。我的身份验证凭据很好,因为我可以使用Apache Directory Studio连接到服务器。有没有办法自动接受服务器证书?与您如何使用Apache directory studio单击“Accept this cert ..”类似?我知道这不是很好的安全性,但我只需要让它在这一点上工作,并且可以在以后消除证书问题。

由于

2 个答案:

答案 0 :(得分:29)

您没有指定环境,所以这里是答案(在本网站的其他地方找到:How do I solve ldap_start_tls() "Unable to start TLS: Connect error" in PHP?):

Linux:在客户端计算机(PHP Web服务器)上修改系统正在使用的ldap.conf文件,在RH / Fedora中,您想要的文件是/etc/openldap/ldap.conf不是/etc/ldap.conf ,即用于系统身份验证...... )。添加/修改以下行:

TLS_REQCERT never

Windows:添加如下系统环境变量:

LDAPTLS_REQCERT=never

或者在您的PHP代码中,在ldap_connect之前,输入以下内容:

putenv('LDAPTLS_REQCERT=never');

这些将确保客户端Web服务器PHP实例永远不会根据证书的FQDN(公用名)检查服务器的CN。在使用虚拟IP和证书的群集环境中非常有用。但是,由于这也使得Web服务器计算机上整个操作系统中的其他工具/应用程序也不会检查这一点,请确保您的环境允许此更改(高安全性环境可能不允许)。

答案 1 :(得分:-5)

使用网络浏览器,指向ldaps:// ipaddress /

当证书弹出框出现时,查看证书,查看证书链,查找受信任的根(不是使用的特定证书,而是签署它的父级)然后导出该证书。以PEM和B64格式保存。 (二进制和B64编码)。

然后使用它将其变为PHP密钥库格式,无论哪个。 Java密钥库很简单。不确定PHP使用的是什么。