Jak używać UnboundID SDK do łączenia się z serwerem LDAP za pomocą certyfikatu serwera SSL?

Mam w ręku certyfikat serwera SSL LDAP. Chcę go użyć do połączenia się z serwerem LDAP przy użyciu UnboundID SDK.

Nie chcę używać com.unboundid.util.ssl.TrustAllTrustManager, jak pokazano tutaj:Używanie UnboundID SDK z plikiem certyfikatu SSL do łączenia się z serwerem LDAP w aplikacji na Androida

Następujące TrustManagers nie pasują do naszych wymagań dotyczących produktów:

com.unboundid.util.ssl.PromptTrustManager
com.unboundid.util.ssl.HostNameTrustManager
com.unboundid.util.ssl.ValidityDateTrustManager

Nie chcę żadnej interakcji z użytkownikiem i tego, czego brakuje na liście powyżej TrustManager, który weryfikuje wystawców certyfikatów.

Ponadto nie chcę wstawiać certyfikatu serwera LDAP do żadnego magazynu kluczy, więc nie mogę używać następujących TrustManagers:

com.unboundid.util.ssl.WrapperKeyManager
com.unboundid.util.ssl.PKCS11KeyManager
com.unboundid.util.ssl.KeyStoreKeyManager

Chcę zrobić coś takiego jak poniższy kod:

CertificateFactory cf = CertificateFactory.getInstance("X.509");
Certificate cert = cf.generateCertificate(byteArrayInputStream);
SSLUtil sslUtil = new SSLUtil(new CertificateTrustManager(cert));
SSLSocketFactory socketFactory = sslUtil.createSSLSocketFactory();
LDAPConnection connection = new LDAPConnection(socketFactory,
     "server.example.com", 636);

Należy pamiętać, że CertificateTrustManager nie istnieje w UnboundID SDK. Jak to zrobić?

questionAnswers(3)

yourAnswerToTheQuestion