Active Directory サーバーで SSL を有効にする必要がありました。そのためには、ここに記載されているすべての手順に従いました: http://www.linuxmail.info/enable-ldap-ssl-active-directory/
SSL が本当に適切に有効化されているかどうかわかりません。
サーバー自体でldpを実行すると、636ポートで接続できると思います。しかし、私のシステムでは、ldp クライアントに SSL オプションが表示されませんか?
他に 2 つの LDAP クライアント (Softerra LDAP Browser と Apache Directory Studio) がありますが、ldaps (636 ポート) を使用して接続できません。これらのツールがADサーバーで使用した自己署名証明書を信頼できるように、ADサーバーで使用される証明書をインポートする必要があると思います。
Java コードを使用して、証明書を cacerts に追加しました (ここに記載されている手順を使用して証明書を取得しました: http://www.linuxmail.info/export-ssl-certificate-windows-2003/ )、それでも AD に接続できませんSSLを使用しています。
SSLとTSLを試しました:
TLS:
// got LdapContext using ldap (not with ldaps)
StartTlsResponse tls = (StartTlsResponse)ctx.extendedOperation(new StartTlsRequest());
次の例外が発生します。
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
SSL:
String ldapURL = "ldaps://<domain-name>:636";
String keystore = "C:/Oracle/Middleware/jdk160_24/jre/lib/security/cacerts";
System.setProperty("javax.net.ssl.trustStore",keystore);
env.put(Context.SECURITY_PROTOCOL,"ssl");
// other properties are set in env
LdapContext ctx = new InitialLdapContext(env, null);
次の例外が発生します。
javax.naming.CommunicationException: <domain-name>:636 [Root exception is java.net.ConnectException: Connection timed out: connect]
誰かが私が間違っている場所を提案できますか?
ありがとう。