使用PHP失败绑定到LDAPS

我们终于build立了我们的服务器来接受ldap SSL连接,这要归功于有帮助的成员回答的另一个问题。

我们现在的问题是,当试图使用下面的简单的PHP脚本绑定到ldap时,我们经常失败。 绑定使用ldap而不是ldaps工作得很好使用脚本,所以我知道ldap已启用。 捕手是在使用LDP.exe时,我们可以使用安全连接成功连接并绑定到端口636上的ldap。

我们失败的脚本如下:

<?php $ldap = ldap_connect("ldaps://localhost"); $username="user"; $password="pass"; if($bind = ldap_bind($ldap, $username,$password )) echo "logged in"; else echo "fail"; echo "<br/>done"; ?> 

我们也尝试input用户名为“user @ domain”或“domain / user”,但没有成功。 看来我永远有LDAP / Cert的问题。 我们的环境是Server 2008。

最后在使用PHP 7.x时发现了另一个解决scheme。 希望这可以帮助别人。

感谢reddit用户gripejones在这里: https ://www.reddit.com/r/PHPhelp/comments/3tykpc/php_7_and_ldap/

PHP 7需要将环境variables(LDAPCONF)设置为您的configuration文件的位置。 它曾经是你可以把configuration文件放在这个文件夹C:\ openldap \ sysconf \ ldap.conf或C:\ ldap.conf中。

您不需要复制第2步中提到的dll文件: http : //greg.cathell.net/php_ldap_ssl.html

确保对ldap服务器的引用格式为ldaps:// servername,服务器名称与证书中的服务器名称相同(如果是xyzzy.company.com,则需要使用ldaps:/ /xyzzy.company.com,不要使用ldaps:// xyzzy)。

除非使用非标准的ssl端口,否则不需要包含端口。

更改URL以包含用于SSL的端口,例如ldaps://localhost:636 (假设636是LDAP服务器侦听安全客户端连接的端口)。

跟随: http : //greg.cathell.net/php_ldap_ssl.html

看起来像步骤#3,#5-7需要在Windows中完成。