我手里有一个 SSL LDAP 服务器证书。我想用它通过 UnboundID SDK 连接到 LDAP 服务器。
我不想使用 com.unboundid.util.ssl.TrustAllTrustManager,如下所示:使用 UnboundID SDK 和 SSL 证书文件连接到 Android 应用程序中的 LDAP 服务器 https://stackoverflow.com/questions/11893608/using-unboundid-sdk-with-an-ssl-certificate-file-to-connect-to-ldap-server-in-an
以下 TrustManager 不符合我们的产品要求:
com.unboundid.util.ssl.PromptTrustManager
com.unboundid.util.ssl.HostNameTrustManager
com.unboundid.util.ssl.ValidityDateTrustManager
我不想要任何用户交互,以及我在验证证书颁发者的 TrustManager 上方的列表中错过的内容。
另外,我不想在任何密钥库中插入 LDAP 服务器证书,因此我无法使用以下命令
信托经理:
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);
请注意,UnboundID SDK 中不存在 CertificateTrustManager。
怎么可能做到呢?