我正在RHEL 5.6(x86_64)上建立一個新的LAMP服務器,使用Apache/2.2.22( Unix)mod_ssl/2.2.22 OpenSSL/0.9.8w和PHP/5.3.13。 (我也試過用PHP 5.3.11。)php 5.3.x ldap_bind()失敗ldaps://使用自簽名證書
問題是我無法綁定到使用自簽名證書的SSL LDAP服務器。
TLS certificate verification: Error, self signed certificate in certificate chain
我讀過的每處都提到將ldap.conf修改爲「TLS_REQCERT永不」,但這不起作用。 (這也不會是因爲變化是由一些企業的子系統覆蓋一個永久的解決方案)
我也試圖把這個在PHP代碼:
putenv('LDAPTLS_REQCERT=never');
其中也沒有工作。
三點注意事項:
1)相同的代碼以類似的服務器設置工作正常,但使用PHP 5.2.x是,也沒有改變在ldap.conf文件。 //連接,並只使用LDAP://,它的工作原理沒有問題
2)當通過CLI,而不是通過Apache運行相同的PHP腳本中,如果我刪除LDAPS正常工作
3)。
我不明白爲什麼對ldap.conf所做的更改無法正常工作,以及爲什麼CLI可以工作,即使ldap.conf未被修改。
編輯:
我不再覺得證書檢查這個問題,但我還是努力讓LDAPS:// Apache的運行時的工作。
下面是從CLI運行時的調試:
TLS certificate verification: Error, self signed certificate in certificate chain
TLS trace: SSL_connect:SSLv3 read server certificate A
TLS trace: SSL_connect:SSLv3 read server done A
TLS trace: SSL_connect:SSLv3 write client key exchange A
TLS trace: SSL_connect:SSLv3 write change cipher spec A
TLS trace: SSL_connect:SSLv3 write finished A
TLS trace: SSL_connect:SSLv3 flush data
TLS trace: SSL_connect:SSLv3 read finished A
ldap_open_defconn: successful
ldap_send_server_request
這裏是相同的,當Apache下運行:所以
TLS certificate verification: Error, self signed certificate in certificate chain
TLS trace: SSL_connect:SSLv3 read server certificate A
TLS trace: SSL_connect:SSLv3 read server done A
TLS trace: SSL_connect:SSLv3 write client key exchange A
TLS trace: SSL_connect:error in SSLv3 write finished A
TLS trace: SSL_connect:error in SSLv3 write finished A
TLS: can't connect.
,似乎在任何情況下,證書錯誤,這些錯誤沒問題,但是當作爲Web模塊運行時,我得到TLS:無法連接而不能成功連接。
phpinfo()和php -i與OpenSSL和LDAP選項相同。
強制性:沒有驗證證書的SSL比沒有SSL更安全0%。 – hobbs
這是在內部的公司網絡上,所以我不關心證書的有效性。通過SSL的LDAP意味着流量本身被加密,這是我的最終目標,因爲這是用於身份驗證並提供密碼的。 – Randy
可以從非SSL連接窺探密碼的人可以使用MITM,然後從SSL連接中窺探密碼,除非您確認證書實際上屬於合法服務器,否則您永遠不會知道。 – hobbs