我无法从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
文件夹,以及包含'Apache
文件夹和'PHP
文件夹的'binaries
文件夹。PHP是Apache的一个模块,Apache是由httpd.exe --standalone --console
启动的。
Openssl s_client -connect xxxx -CAfile xxxx
到LDAPS服务器工作良好,返回代码为0
。没有CCD_ 13 I fet CCD_。
没有SSL的LDAP对我来说很好,我尝试了一些免费的在线LDAP测试服务器。
问题解决了。注意:机器上没有安装Openldap。
解决方案是设置Windows系统变量LDACONF,值为例如c:'users'user'.ldaprc
,在文件.ldaprc
中设置证书路径,例如TLS_CACERT c:'users'user'.ssh'ldap-ca.pem
或TLS_REQCERT never
,两者都有效。
然后从控制台或通过Apache从浏览器连接脚本运行正常
conf的默认搜索路径是c:''users''user'',但对于通过Apache运行的浏览器应用程序,必须设置系统变量LDACONF。
我希望这能有所帮助!