当您遇到此错误时
Warning: ldap_start_tls() [function.ldap-start-tls]: Unable to start TLS: Connect error in /var/www/X.php on line Y
这可能是由于证书有效性问题导致的。您可以通过添加调试级别来检查错误
<?php
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
?>
这可以在 ldap_connect 执行之前完成。
要解决证书有效性问题
添加
TLS_REQCERT never
在文件(如果不存在则创建)中
c:\openldap\sysconf\ldap.conf <= Windows
/etc/ldap.conf <= linux
可能需要重新启动 Web 服务器才能应用更改
这可能不是最佳解决方案,但它有效……
需要注意的另一件事是它需要版本 3(版本 2 是 php 默认版本)
<?php
$con = ldap_connect($hostnameSSL);
ldap_set_option($con, LDAP_OPT_PROTOCOL_VERSION, 3);
?>
另一个提示:如果您使用类似“ldap://…”(自动使用端口 389)或“ldaps://…”(自动使用端口 636)的 URL,则不会使用 ldap_connect 的第二个参数。