Active Directory 서버에서 SSL을 활성화해야만 여기에 언급 된 모든 단계를 따랐습니다. http://www.linuxmail.info/enable-ldap-ssl-active-directory/SSL을 통해 AD 서버에 연결하는 데 문제가 있습니까?
이제 SSL이 실제로 올바르게 활성화되었는지 확신 할 수 없습니까?
서버에서 ldp를 실행하면 636 포트에 연결할 수 있다고 생각합니다. 그러나 내 시스템에서 ldp 클라이언트에 SSL 옵션이 표시되지 않습니까?
다른 두 개의 LDAP 클라이언트 (Softerra LDAP Browser 및 Apache Directory Studio)가 있지만 636 포트의 ldaps를 사용하여 연결할 수 없습니다. 나는 AD 서버에서 사용 된 인증서를 가져와야 할 것 같아요. 그래서이 툴들은 내가 AD 서버에서 사용했던 자체 서명 인증서를 신뢰할 수있게 해줄 것입니다.
Java 코드를 사용하여 인증서를 cacerts에 추가했는데 (여기에 언급 된 단계를 사용하여 인증서가 있음 : http://www.linuxmail.info/export-ssl-certificate-windows-2003/) SSL을 사용하여 AD에 연결할 수 없습니다.
TLS : 나는 SSL뿐만 아니라 TSL을 시도
는
가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);
그것은 다음과 같은 예외를 제공
// got LdapContext using ldap (not with ldaps)
StartTlsResponse tls = (StartTlsResponse)ctx.extendedOperation(new StartTlsRequest());
그것은 다음과 같은 예외를 제공합니다 :
javax.naming.CommunicationException: <domain-name>:636 [Root exception is java.net.ConnectException: Connection timed out: connect]
누구든지 내가 잘못 생각한 부분을 제안 할 수 있습니까?
감사합니다.
감사합니다. Mathew, 네, 확실히 인증서를 가져 오면 안된다고 말할 수 있습니다. 나는 그것을하기 위해 같은 명령을 사용했다. –
그것은 나에게도 문제가되는 것 같습니다 : SSL이 올바르게 활성화되어 있지 않거나 잘못된 인증서를 가져 오는 중입니다. 그러나 나는 위의 링크에서 언급 한 프로세스를 따라 왔으며 그러한 오류가 발생하지 않았습니다. –