无法连接到Windows 7 64位上的PHP 5.5.4的LDAPS服务器,Apache 2.4

问题描述:

我无法连接到PHP的LDAPS服务器(第三方)(PHP 5.5.4,Apache 2.4,Windows 7 64bit)。当我尝试使用用户名和密码ldap_bind()函数,我收到 - Unable to bind to server: Can't contact LDAP server.无法连接到Windows 7 64位上的PHP 5.5.4的LDAPS服务器,Apache 2.4

我有LDAPS服务器的自签名证书,但我不知道在哪里把PEM文件(Base64)或类似conf .file(我已经阅读了许多答案,但没有任何适用于我的例子 - 例如c:\openldap\sysconf\ldap.conf,TLS_REQCERT从不等)。

发展文件夹是D:\WebDev其中里面是\www文件夹项目,并与\Apache文件夹和文件夹\PHP\binaries。 PHP是Apache的一个模块,Apache由httpd.exe --standalone --console启动。

Openssl s_client -connect xxxx -CAfile xxxx以LDAPS服务器工作正常,返回码为0。没有-CAfile我fet code 19 (self-signed certificate in certificate chain)

没有SSL的LDAP对我来说工作正常,我试过一些免费的在线LDAP测试服务器。

问题解决了。注意:机器上没有安装OpenLDAP。

解决方法是设置Windows系统变量LDAPCONF,值为例如c:\users\user\.ldaprc并且在文件.ldaprc中设置证书的路径,例如, TLS_CACERT c:\users\user\.ssh\ldap-ca.pemTLS_REQCERT never,两者都在工作。

然后从控制台或通过Apache从浏览器连接脚本运行正常。

conf的默认搜索路径是c:\ users \ user \,但是对于通过Apache运行的浏览器应用程序,必须设置系统变量LDAPCONF。

我希望这个帮助!