TLS_REQCERT和PHP与LDAPS

问题:
通过命令行和PHP将LDAP查询保护到具有自签名证书的AD域控制器。

背景:
我正在开发一个项目,我需要启用从PHP Web应用程序到使用自签名证书的MS AD域控制器的LDAP查找。 此自签名证书也使用不是FQDN的域名 – 将people.campus视为域名。 Web应用程序将获取用户的凭据,并将其传递到AD域控制器,以validation该凭证是否匹配。 这似乎很简单,但我有问题试图让PHP和自签名证书工作。

有人build议我在OpenLDAPconfiguration中将TLS_REQCERTvariables从“request”改为“never”。 我担心这可能会带来更大的影响,比如中间人攻击,我不能很好地把这个设置改变为从不。 我还在线阅读了一些可以获取证书的地方,并将其作为可信来源放在openldapconfiguration文件中。 我很好奇,如果这是我能为我所处的情况做些什么? 我可以从命令行获取AD域控制器正在使用的自签名证书,将其保存到一个文件中,然后让openldap使用该文件来获得所需的信任,这样我就不需要调整variables从请求到从不? 我无权访问AD域控制器,因此无法导出证书。 如果有从命令行获取证书的方法,我需要使用哪些命令? 有没有一种处理这个问题的替代方法,从长远来看会更好? 我有一些CentOS服务器和一些我正在尝试使用的Ubuntu服务器。

预先感谢您的帮助和想法。

如果您的自签名证书由您所属机构签署,您可以通过检查服务器证书来检查提供的证书是否正确。 为此,在你的ldap.conf文件中加上'TLS_CACERT /etc/ssl/certs/ca.pem'这个ca.pem是你的权限的公钥文件。 使用'TLS_REQCERT',它会检查你的连接,如果你的证书服务器不正确,拒绝发言。

如果你只有证书,你可以MAYBE(我不试试)添加你的公钥到TLS_CERT / TLS_CACERT。