PHP LDAP 自签名根证书错误

问题描述 投票:0回答:1

TLDR:

PHP ldap_bind 抱怨 CA 的根证书是自签名的。

长版:

大家好。

我一段时间以来一直在寻找这个问题的答案,但似乎找不到有利于生产的解决方法。详情如下:

我正在运行 XAMPP 发行版,并在 Windows 11 计算机上安装了 PHP 8.2.4。它配置为使用 OpenSSL 和 OpenLDAP。我的目标是编写一个 Web 应用程序,根据大学使用 ldaps 的 Active Directory 对用户进行身份验证。我编写了一个迷你脚本来检查 TLS 连接,然后使用

bindDN
和凭据绑定到 LDAP 服务器。

就像基本上每个人一样,我也收到自签名证书错误。因此,我尝试了不同的解决方案,最终通过将 LDAP 协议版本设置为 3 并且不检查自签名证书来实现。我还读到这会让你面临安全漏洞。因此我想避免这种解决方案。

因此,我更深入地检查了哪些证书实际上是自签名的。事实证明,OpenSSL 正在抱怨“DigiCert”(全局根 G2)的根证书。据我所知,根证书始终是自签名的。

这个问题有解决办法吗?我对网络证书非常陌生,因此希望得到一个不纯粹是技术性的答案。这是我第一次接触这个领域。

ssl openssl x509certificate openldap
1个回答
0
投票

修复相当简单。当我在 Windows 机器上工作时,我必须添加以下文件夹结构

C:\OpenLdap\sysconf

我在其中粘贴了用于签署 LDAP 服务器的 CA 根证书。除此之外,我创建了一个名为

ldap.conf
的文件,其中粘贴了以下代码行

#--begin--

# Define location of CA Cert
TLS_CACERT c:\OpenLDAP\sysconf\[CA_ROOT_CERT]
TLS_CACERTDIR c:\OpenLDAP\sysconf\
TLS_REQCERT hard

#--end--

您必须将

[CA_ROOT_CERT]
替换为您的 CA 根证书名称。我不必编辑任何环境变量。

© www.soinside.com 2019 - 2024. All rights reserved.