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

2022-08-30 21:02:28

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

谢谢


答案 1

您没有指定环境,所以这是答案(在此站点的其他地方找到:如何解决PHP中ldap_start_tls()“无法启动TLS:连接错误”?

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

TLS_REQCERT never

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

LDAPTLS_REQCERT=never

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

putenv('LDAPTLS_REQCERT=never');

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


答案 2

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

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

然后使用它将其转换为PHP密钥库格式,无论哪种格式。Java 密钥库很容易。不确定PHP使用什么。


推荐