簡體   English   中英

ZF2 LDAP SSL證書不受信任

[英]ZF2 LDAP SSL certificate untrusted

我利用Zend Framework 2 Zend \\ Authentication \\ Adapter \\ Ldap對Windows Active Directory進行身份驗證。 當我不嘗試使用SSL時,這一切都可以完美地工作。 使用SSL時,我收到以下錯誤:

0x51(無法聯系LDAP服務器;錯誤:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:證書驗證失敗(無法獲取本地頒發者證書)):

我懷疑這是因為我們使用了自簽名證書。 我想繞過證書檢查。 使用標准的php ldap_set_option,我可以將TLS_REQCERT設置為never。 我在Zend身份驗證適配器提供的ldap選項中找不到如何設置此屬性。 在與此相關的文檔中,我是否缺少配置設置?

有人知道如何在ZF2中設置REQCERT =永不設置嗎?

我必須注意,這不是不驗證證書的借口,而是為了測試在Apache / PHP或命令行上運行的ZF2和LDAP(如果正在此處開發的話)就是答案。

對於Apache 2.4

我相信您可以將其全局放置在Apache的“ httpd.conf”中,每個網站的“ VirtualHost”配置中,或更具體地將其放置在本地“ .htaccess”文件夾中。 如果您需要了解這些文件之間的差異,我可以提供進一步的幫助,但是現在,您可以對特定ZF2應用程序的VirtualHost配置有所了解,這將很有用,因此並不是將其應用於所有正在開發的站點。

確保已啟用Apache中的mod_env模塊。

將其添加到ZF2應用程序的VirtualHost下:

<VirtualHost *:80>
  DocumentRoot /www/example1
  ServerName www.example.com

  # The following allows for not requiring the certificate when developing between LDAP and AD SSL.
  SetEnv LDAPTLS_REQCERT never
  # Other directives here for your ZF2/PHP LDAP based site

</VirtualHost>

確保重新啟動Apache! 有關更多環境信息,請參見http://httpd.apache.org/docs/current/mod/mod_env.html

用於開發的PHP命令行界面(例如在Linux上)

當從命令行(在bash shell中)運行PHP時,要測試您的ZF2站點,請轉到公用文件夾並運行以下命令進行開發:

cd [path_to_ZF2_development_directory_without_brackets]/public

// sets the environment variable for this session only
LDAPTLS_REQCERT=never

// Runs PHP 5 's built in non-production Web server on the folder; listening on port 80 from all available sources.
php -S 0.0.0.0:1080 -t ./ 

因此,在我的示例中,我將轉到(cd)我的zf2-application / public文件夾並運行其他兩個命令。

總而言之,這些建議可以消除錯誤,但是現在您必須處理需要在代碼或Active Directory中修復的所有其他LDAP到Active Directory問題。

在通過SSL連接時,客戶端默認情況下會驗證服務器證書-禁用此證書的一種方法是TLS_REQCERT never在LDAP的ldap.conf文件中設置TLS_REQCERT never ,然后重新啟動Apache。

如果您確實關心服務器的證書,則應將證書放在Web服務器上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM