我手裏有一個SSL LDAP服務器證書。我想用它來使用UnboundID SDK連接到LDAP服務器。如何使用UnboundID SDK通過SSL服務器證書連接到LDAP服務器?
我不想用com.unboundid.util.ssl.TrustAllTrustManager因爲在這裏顯示: Using UnboundID SDK with an SSL certificate file to connect to LDAP server in Android app
以下TrustManagers不適合我們的產品要求:
com.unboundid.util.ssl.PromptTrustManager
com.unboundid.util.ssl.HostNameTrustManager
com.unboundid.util.ssl.ValidityDateTrustManager
我不想任何用戶交互,以及我在TrustManager上方列表中錯過的驗證證書頒發者的內容。
而且,我不想插入任何密鑰庫的LDAP服務器證書,所以我不能使用以下 TrustManagers:
com.unboundid.util.ssl.WrapperKeyManager
com.unboundid.util.ssl.PKCS11KeyManager
com.unboundid.util.ssl.KeyStoreKeyManager
我想要做的東西像下面的代碼:
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);
請注意,CertificateTrustManager在UnboundID SDK中不存在。 怎麼可能做到這一點?
感謝您的回答(+1)!我找到了解決方案。很高興聽取您的意見。 – Michael