gpt4 book ai didi

java - 如何在不重启 JVM 的情况下导入服务器证书并使其可用于验证?

转载 作者:太空宇宙 更新时间:2023-11-03 12:55:28 24 4
gpt4 key购买 nike

我需要支持多个 LDAP 服务器。有些可能使用 SSL。我能够下载证书并将其添加到 Java 信任库文件中。添加证书后,如果我立即尝试使用 SSL 登录,登录将失败。如果我重新启动 JVM,登录工作正常。

这是正常行为吗?是否有任何解决方法可以在不重新启动 JVM 的情况下进行登录?

最佳答案

创建自定义 SSLContext,然后创建 SSLContext.getSocketFactory()。

public static SSLContext createSSLContext(Certificate ca, PrivateKey key, Certificate[] chain)
KeyStore keyStore = KeyStore.getInstance("JCEKS");
char[] pwd = new char[1];
keyStore.load(null, pwd);
if (key != null && chain != null) {
keyStore.setKeyEntry("key", key, pwd, chain);
}
if (ca != null) {
keyStore.setCertificateEntry("cert", ca);
}

SSLContext sc = SSLContext.getInstance("SSL");

KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
keyManagerFactory.init(keyStore, pwd);

TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init(keyStore);

sc.init(key != null ? keyManagerFactory.getKeyManagers() : null,
ca != null ? trustManagerFactory.getTrustManagers() : null,
null);
return sc;
}

关于java - 如何在不重启 JVM 的情况下导入服务器证书并使其可用于验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7886967/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com