我正在尝试通过另一个Debian框对我的Debian服务器进行安全LDAP身份验证。
以下代码适用于命令行(打印"成功"):
if($ldap = ldap_connect('ldaps://myserver.tld'))
{
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
$bind = ldap_bind($ldap,'cn=admin,dc=myserver,dc=tld','mypassword');
print ldap_error($ldap);
}
...通过Apache / mod_php打印相同的文件"无法联系LDAP服务器"
在stackoverflow上还有另一个类似的问题,但它的答案对我不起作用。我已经尝试使用相同的php.ini用于cli的apache,但问题保持不变。
答案 0 :(得分:2)
我们刚刚遇到这个问题。事实证明,我们所要做的就是重启Apache。
我不知道原因是什么(我不管理服务器),但很可能是安全更新。
答案 1 :(得分:0)
我终于能够解决自己的问题了,我确实希望与您分享我的解决方案:
我正在为我的LDAP服务器使用自签名证书,因此有必要创建我自己的ca证书并将其导入客户端的证书存储区以建立信任。 当我以 root 用户从cli运行上述脚本时,apache以 www-data 运行。 我的自制ca-certifictate的权限设置为 400 ,其用户设置为 root ,因此只有root才能读取它。
这阻止了apache(作为www-data运行)上的php建立到我的LDAP服务器的连接。一旦我将ca-certificate的权限更改为 444 ,一切都像魅力一样......