gpt4 book ai didi

java - X509TrustManager 在不允许所有证书的情况下覆盖?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:48:55 25 4
gpt4 key购买 nike

我目前正在覆盖 X509TrustManager 以允许所有证书作为临时“解决方案”(当时是不安全的解决方案)。我试图弄清楚我将如何添加,以便它只接受我遇到问题的特定证书,直到可以完成正确的修复(目前不在我手中)。这是当前代码。

TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {
@Override
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}

@Override
public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) {
}

@Override
public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) {
}
}};

try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (GeneralSecurityException e) {
System.out.println(e.getStackTrace());
}

最佳答案

您需要做的就是从 getAcceptedIssuers 返回证书。参见 this

 InputStream inStream = new FileInputStream("fileName-of-cert");
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate)cf.generateCertificate(inStream);
inStream.close();

然后在方法中将其返回到一个数组中

关于java - X509TrustManager 在不允许所有证书的情况下覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11857417/

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