我在使用Windows连接到安全的LDAP服务器时遇到了问题,我在网上到处都看到同样的事情,到目前为止还没有解决方案。
我尝试过使用IIS和WAMPSERVER。我已经将libeay32.dll和ssleay32.dll放在我的SYSTEM32目录中并启用了LDAP扩展。
这是我的代码:
putenv('LDAPTLS_REQCERT=never');
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
$resource = ldap_connect("ldaps://{redacted}/", 636) or die ("Could not connect.");
ldap_set_option($resource, LDAP_OPT_PROTOCOL_VERSION, 3)
$bound = ldap_bind($resource, "{redacted}\ldap", "****");
echo ldap_error($resource);
我从ldap_error获取Can't contact LDAP server
并且PHP警告Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Can't contact LDAP server in C:\wamp\www\ldapTest.php
我尝试连接的服务器正在运行Active Directory,我已确认可以使用其他LDAP工具进行连接。我知道这个服务器的证书有问题 - 我使用的LDAP工具是The server you are trying to connect to is using a certificate which could not be verified! - Issuer certificate not found
我怀疑是错误的证书导致绑定问题,这就是为什么我尝试过LDAPTLS_REQCERT = never。
答案 0 :(得分:1)
我不记得我在哪里发现了这篇文章;但是我发现默认情况下,即使你指定TLS_REQCERT也不会被忽略。
我发现/然后忘记并再次发现你需要做以下事情(对于Windows机器)
试一试。祝你好运!
答案 1 :(得分:0)
您可以尝试更改以下行:
$resource = ldap_connect("ldaps://{redacted}/", 636)
直接在URI中使用您的端口号
$resource = ldap_connect("ldaps://{redacted}:636")
当其他人不这样做时,这已经知道了。