gpt4 book ai didi

JAVA 使用两个 keystore 相同的应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 13:39:21 25 4
gpt4 key购买 nike

我正在尝试用 Java 开发一个应用程序,它基本上从 REST-JSONs API 获取大量数据并将其插入到数据库中。我的问题是我使用的两个 URL 抛出了有关 SSL 证书的错误。为了解决这个问题,我创建了一个 jks 文件并插入了他们的证书。问题是,一旦我把它放在我的代码中,jvm 只使用该文件上的证书,所有其他的都被拒绝。所以我想让我的应用程序接受来自“cacerts.jks”和“custom.jks”的 json。请不要告诉我将证书添加到“teste.jks”(来自 jvm),因为该应用程序不会在我的计算机上运行,​​我需要一个单独文件中的证书。

再观察一下,我正在处理大约 90 个不同的 URL,我使用以下行来指示 jvm,即要使用的 keystore :

System.setProperty("javax.net.ssl.trustStore",System.getProperty("user.dir")+"/libs/teste.jks");
//or (for native one):
System.setProperty("javax.net.ssl.trustStore", "cacerts.jks");

最佳答案

实现 javax.net.ssl.TrustManager 的子类或其子类之一,如 javax.net.ssl.X509TrustManager(下例中的 MyTrustManager)并调整 SSLContext 以使用它。您的信任管理器实现可以在验证/信任证书方面做任何您想做的事情。

        SSLContext context = SSLContext.getInstance("TLS");
MyTrustManager tm = new MyTrustManager();
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG", "SUN");
context.init(null, new TrustManager[] { tm }, sr);
SSLContext.setDefault(context);
HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory());

关于JAVA 使用两个 keystore 相同的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29724950/

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