繁体   English   中英

安全LDAP可与PHP CLI配合使用,但不能通过apache配合使用

[英]Secure LDAP works with PHP CLI but not through apache

我正在尝试从另一个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,这里还有另一个类似的问题,但是它的答案对我不起作用。 我已经尝试过为cli使用相同的php.ini for apache,但是问题仍然存在。

我们只是发生了这个问题。 原来,我们要做的就是重启Apache。

我不知道是什么原因(我不管理服务器),但是最有可能是安全更新。

我终于能够解决自己的问题,并且想与您分享我的解决方案:

我为LDAP服务器使用了自签名证书,因此有必要创建自己的ca证书并将其导入客户端的证书存储区以建立信任。 当我以root用户身份从cli运行上述脚本时,apache作为www-data运行。 我自制的ca-certifictate的权限设置为400 ,其用户为root ,因此只有root可以读取它。

这可以防止apache上的php(以www-data运行)建立与我的LDAP服务器的连接。 一旦我将ca证书的权限更改为444 ,一切就如魅力一般...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM