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ć?