我无法从PHP( PHP 5.5.4,Apache 2.4,Windows 7 64位)连接到LDAPS服务器(第三方)。当我使用userdn和密码尝试ldap_bind()
函数时,我会收到 - Unable to bind to server: Can't contact LDAP server.
我有来自LDAPS服务器的自签名证书,但我不知道把PEM文件放在哪里(Base64)或像conf.file这样的东西(我已经为此读了很多答案,但没有什么对我有用 - 例如c:\openldap\sysconf\ldap.conf
,TLS_REQCERT
从不等。)。
开发文件夹是D:\WebDev
,其中内部是带有项目的\www
文件夹,带有\binaries
文件夹和\Apache
文件夹的\PHP
文件夹。 PHP是Apache的模块,Apache由httpd.exe --standalone --console
启动。
Openssl s_client -connect xxxx -CAfile xxxx
到LDAPS服务器工作正常,返回代码为0
。没有-CAfile
我没有code 19 (self-signed certificate in certificate chain)
。
没有SSL的LDAP对我来说很好,我已经尝试了一些免费的在线LDAP测试服务器。
答案 0 :(得分:0)
问题解决了。注意:机器上没有安装Openldap。
解决方法是设置Windows系统变量LDAPCONF,值为例如c:\users\user\.ldaprc
并在文件.ldaprc
中设置证书路径,例如TLS_CACERT c:\users\user\.ssh\ldap-ca.pem
或TLS_REQCERT never
,两者都有效。
然后来自控制台的连接脚本或来自浏览器的Apache正常运行。
conf的默认搜索路径是c:\ users \ user \,但是对于通过Apache运行的浏览器应用,必须设置系统变量LDAPCONF。
我希望这有帮助!