web-dev-qa-db-ja.com

PHPを使用してLDAPサーバーにバインドするときに、サーバー証明書を無視するためのヘルプが必要です

PHPを使用してLDAPサーバーにバインドしようとしています。取得している証明書エラーを回避できないことを除けば、これはかなり単純なプロセスです。 Apache Directory Studioを使用してサーバーに接続できるため、認証資格情報は問題ありません。サーバー証明書を自動的に受け入れる方法はありますか? Apacheディレクトリスタジオで[この証明書を受け入れる..]をクリックする方法と似ていますか?セキュリティが良くないことはわかっていますが、この時点で機能させる必要があり、後で証明書の問題を解決できます。

ありがとう

17

環境を指定しないので、ここに答えがあります(このサイトの他の場所にあります: PHPでldap_start_tls()「TLSを開始できません:接続エラー」を解決するにはどうすればよいですか? ):

Linux:クライアントマシン(PHP Webサーバー)で、システムが使用しているldap.confファイルを変更します。RH/ Fedoraでは、必要なファイルは/etc/openldap/ldap.confnot /etc/ldap.conf、つまりシステム認証用です...)。次の行を追加/変更します。

TLS_REQCERT never

Windows:次のようなシステム環境変数を追加します。

LDAPTLS_REQCERT=never

または、PHPコードで、ldap_connectの前に次のように入力します。

putenv('LDAPTLS_REQCERT=never');

これらは、クライアントWebサーバーPHPインスタンスがサーバーのFQDNを証明書のCN(一般名)と照合しないことを保証します。クラスターで非常に役立ちます仮想IPとその証明書が使用されている環境。ただし、これにより、Webサーバーマシン上のOS全体の他のツール/アプリケーションもこれをチェックしないようになるため、環境でこの変更が許可されていることを確認してください(高-セキュリティ環境では許可されない場合があります)。

34
dbman