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