2014-08-31 37 views
0

我已瀏覽了很多關於此問題的問題,並且已經用盡了我的選項,所以在這裏。我有一個Windows 2008R2域控制器。我使用PHP從不同的服務器,同一個域使用LDAP連接到它。 (另外Win2008R2,IIS7.5)我已確保了下列關於所述PHP LDAPS綁定失敗,我錯過了什麼使這項工作?

  • 證書的域控制器已經被導入到 受信任的根機構存儲的PHP機器上
  • 我已經使用LDP.EXE PHP機可以連接並綁定在使用DC的名稱和端口LDAPS 636
  • 我的用戶憑據正確
  • 我可以在PHP就好使用LDAP端口389連接

這裏是我的代碼:

putenv('LDAPTLS_REQCERT=never'); 

    $host = "ldaps://mydc.thing.com:636"; 
    $dn = "Admin User"; 
    $dnp = "adminPaSwOrD"; 


    $base = "DC=thing,DC=com"; 
    $scope = "sub"; 

    ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); 
    ldap_set_option($ds, LDAP_OPT_REFERRALS, 0); 

    $ds = ldap_connect($host); 

    $r=ldap_bind($ds, $dn, $dnp); 

錯誤消息始終是:

PHP Warning: ldap_sasl_bind() [<a href='function.ldap-sasl-bind'>function.ldap-sasl-bind</a>]: Unable to bind to server: Can't contact LDAP server in ... 

相關信息PHP:

#Version 5.3.8 
#cURL: 7.22.0, SSL:yes, dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, pop3, pop3s, rtsp, scp, sftp, smtp, smtps, telnet, tftp 
#LDAP: enabled, SASL: enabled, OpenLdap v.20319 

我已經沖刷護目鏡和嘗試了不少東西我自己。奇怪的部分是PHP機器上的LDAP客戶端可以連接並綁定到DC,而不是在PHP中。我也從CLI嘗試過PHP(將IIS從混合中刪除),並返回相同的錯誤。

任何幫助將不勝感激。

SG

+0

您是否嘗試過在https://stackoverflow.com/questions/5258556/problems-with-secure-bind-to-active-directory-using-php中提到的建議? – Yuvika 2014-09-01 07:53:13

+0

@YSU - 是的,我已經把putenv('LDAPTLS_REQCERT = never');在腳本的頂部以及將ldap.conf放在根目錄(c:\)以及建議的文件夾c:\ openldap \ sysconf \中,都無濟於事。也許我應該升級PHP?我想我會嘗試。我嘗試連接時,我的證書有效,並且DC側沒有SSL錯誤。 – 2014-09-01 10:40:04

回答

0

我升級到PHP 5.6和問題走了。我不知道爲什麼。回答我自己的問題「我錯過了什麼使它成爲現實?」 - 我錯過了正確的PHP版本。

相關問題