我想知道如何使用另一Windows服务器上LDAPS
中的PHP
连接到Active Directory域控制器。
我已经导出了根证书和服务器证书,并将根放在我的受信任的根存储中,而服务器身份验证则放在了Windows证书存储中的个人证书中。
当我尝试使用port 389
进行连接时可以,但是当我尝试使用port 636
进行连接时,会出现错误。
// LDAP variables <br>
$ldap_host = "myhost"; // your ldap servers<br>
$ldap_port = 636; // your ldap server's port number<br>
$base_dn = "OU=Users,OU=domain,DC=example,DC=local";<br>
// Connecting to LDAP<br>
$connect = ldap_connect( $ldap_host, $ldap_port)<br>
or exit(">>Could not connect to LDAP server<<");<br>
echo "Connected to $ldap_host";<br>
ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);<br>
$ldap_user = "CN=UserName,OU=No Policy,DC=example,DC=local";<br>
$ldap_pass = "Password";<br>
// verify binding<br>
$bind = ldap_bind($connect, $ldap_user, $ldap_pass)<br>
or exit(">>Could not bind to $ldap_host<<" . ldap_error($connnect) );<br>
我得到的输出是“连接到myhost无法绑定到myhost。
使用端口389时,“连接到myhost”
答案 0 :(得分:0)
如docs中所述,您需要使用LDAP-URI通过LDAPS连接。
在您的情况下,将如下所示:
ldap_connect('ldaps://'. $ldap_host. ':'. $ldap_port);
答案 1 :(得分:0)
我能够使用以下方法在PHP上使用ldaps连接到我的服务器。
document.ready
我还必须创建这些文件夹C:\ openldap \ sysconf,然后将名为ldap.conf的文本文档放入其中。
然后,我编辑了ldap.conf并放入了TLS_REQCERT,从不
这适用于通过LDAPS连接。
正确的方法是从此处下载cacert.pem:
https://curl.haxx.se/docs/caextract.html
然后将您的服务器哈希添加到此证书的底部。
最后,编辑ldap.conf以说出TLS_CACERT \ path \ to \ cert \ cacert.pem,并从上方注释掉TLS_REQCERT注释。
然后重新启动apache / nginx / etc,您应该能够使用LDAPS进行连接。