2012-01-17 21 views
1

Windowsを使用してセキュアなLDAPサーバーに接続する際に問題が発生しています。LDAPSがPHPと接続していません

私はIISとWAMPSERVERの両方を使用しようとしました。 libeay32.dllとssleay32.dllを私のSYSTEM32ディレクトリに置き、LDAP拡張を有効にしました。ここで

は私のコードです:

putenv('LDAPTLS_REQCERT=never'); 
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7); 
$resource = ldap_connect("ldaps://{redacted}/", 636) or die ("Could not connect."); 
ldap_set_option($resource, LDAP_OPT_PROTOCOL_VERSION, 3) 
$bound = ldap_bind($resource, "{redacted}\ldap", "****"); 

echo ldap_error($resource); 

私はldap_errorからCan't contact LDAP serverを取得し、PHPは、私がに接続しようとしていますサーバーがActive Directoryを実行していると私は私が接続できることを確認したWarning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Can't contact LDAP server in C:\wamp\www\ldapTest.php

を警告します他のLDAPツールを使用します。私はこのサーバに証明書の問題があることを知っています。私が使っているLDAPツールは、The server you are trying to connect to is using a certificate which could not be verified! - Issuer certificate not foundです。

私の疑念は、LDAPTLS_REQCERT = neverを試した理由です。

答えて

0

あなたは、以下の行を変更してみてください:

$resource = ldap_connect("ldaps://{redacted}/", 636) 

これは、ときに、他にはないだろう動作することが知られている

$resource = ldap_connect("ldaps://{redacted}:636") 

代わりにURIで直接あなたのポート番号を使用するには。

+0

答えはありがたいですが、残念ながらこれは私のためには機能しませんでした。 – Sam

1

私はこの記事をどこで見つけたのでしょうか。しかし、TLS_REQCERTを指定しなくてもデフォルトでは無視されることが分かっています。私は/が、約忘れてしまって、再びルート Cで、C:ドライブの以下のディレクトリ構造を作成します(Windowsマシン用)

  1. を次の操作を実行する必要があるが分かった分かった何

    :\その後、OpenLDAPの\のにsysconf(2つのフォルダを作成します)

  2. にsysconfフォルダ内に作成したテキストファイルで「のldap.conf」
  3. というテキストファイルを作成するには、最初の行に次を入れて、 を保存「TLS_REQCERT決して」 (引用符なし)
  4. Apacheを再起動してください。これで動作します。

試してください。そして成功を祈る!

+0

この手順は、WAMPのインストール時に2017年1月現在で必要です(設定:Windows Server 2008 R2、Apache 2.4.25 Win64 VC14、PHP 7.1.1) – Antoine

関連する問題