証明書を使用して、phpスクリプトをtls経由でLDAPに接続する必要があります。 LDAP接続は、TLSがなくてもうまく機能します。詳細はこちらhttps://stackoverflow.com/questions/15260252/how-to-use-multiple-tls-certificates-for-ldap-from-php-zend
Softerra LDAPブラウザを使用して、Windowsからtls経由で接続することができました。証明書のインストールと、それを信頼できるかどうかを尋ねられました。
私の最終的な結果は、phpからのTLSを使用してLDAPで認証できるようになることです。タイプ.cerの証明書が与えられました。これは、WindowsExchangeマシンからのものです。私が見ることができることから、SLESは.pem証明書をサポートしています。だから私の質問は…
Q1:.cerから.pemに変換する必要がありますか 最初にクライアント(SLESサーバー)に証明書をインストールする前に、最後に Q2:この証明書をサーバーにインストールしてPHPアプリケーションがアクセスしてその仕事を実行できるようにするための最良の方法は何ですか 。 SLESサーバーでは、さまざまなLDAPサーバーに接続する必要があることに注意してください。
現時点で実行すると
ldapsearch -H ldaps://localhost:9215 -W
取得します
Enter LDAP Password:
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
additional info: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed (unable to get local issuer certificate)
ここでたくさんの良い情報を見つけましたhttp://www.php.net/manual/de/function.ldap-connect.php#36156そして特にこの文は私の目に重要ですOnce you've gotten the ldapsearch tool working correctly PHP should work also.
- SUSE Linux Enterprise Server 11(x86_64)
- ldapsearch:@(#)$ OpenLDAP:ldapsearch 2.4.26(Sep 26 2012 13:14:42)$
[メール保護]:/ usr / src / packages / BUILD / openldap-2.4.26 / clients / tools
(LDAPライブラリ:OpenLDAP 20426)
承認された回答:
これは、サーバー上の証明書の有効期限が切れているか、無効であることを意味します。
回避策として、LDAPTLS_REQCERT
を使用してください 証明書を無視する変数。例:
LDAPTLS_REQCERT=never ldapsearch -D "cn=drupal-test,ou=Services,dc=example,dc=com" -w my_pass -h ldap.example.com -b "ou=People,dc=example,dc=com" -s sub -x -ZZ "(uid=admin)"
それ以外の場合は、証明書をインポートして信頼できるものとしてマークできます。