我正在嘗試使用PHP LDAP模塊將身份驗證層置於組織的某些內容上。如果我將LDAP_OPT_X_TLS_REQUIRE_CERT設置爲0,該腳本完美工作,但如果我不這樣做,則會出現以下錯誤。未定義PHP LDAP選項
- ldap_error()返回「無法綁定到服務器:無法聯繫LDAP服務器」
- ldap_get_option()爲LDAP_OPT_ERROR_STRING回報「:對方的證書頒發者無法識別TLS錯誤-8179」。
This page表明可以通過將LDAP服務器的安全證書放在我自己的服務器上來解決Peer的證書錯誤。我向IT部門請求了PEM。現在我需要確定它放在哪裏。
當我嘗試通過LDAP_OPT_X_TLS_CACERTDIR打印ldap_get_option(),以獲得預期的證書目錄,我得到警告「ldap_get_option()預計參數2是整數,字符串中給定」。實際上,當我回顯LDAP_OPT_X_TLS_CACERTDIR本身時,結果實際上就是該字符串,而不是整數。
例如:
echo LDAP_OPT_SIZELIMIT . '<br />';
echo LDAP_OPT_ERROR_STRING . '<br />';
echo LDAP_OPT_X_TLS_CACERTDIR;
die();
結果:
3
50
LDAP_OPT_X_TLS_CACERTDIR
這是每一個LDAP_OPT_X_問題?選項列在the documentation中,但LDAP_OPT_X_TLS_REQUIRE_CERT除外,後者打印爲24582.
有誰知道爲什麼這些選項沒有定義?
您使用哪個版本的PHP? – heiglandreas
我們使用的版本是7.0.17 – tkm256