簡體   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