gpt4 book ai didi

java - 是否可以让 Java 忽略 "trust store"并接受它获得的任何 SSL 证书?

转载 作者:IT老高 更新时间:2023-10-28 20:38:15 32 4
gpt4 key购买 nike

我正在尝试编写一个使用 javax.mail API 发送邮件的 SSL 客户端。我遇到的问题是我使用 SSL 的服务器请求,但服务器也配置了非标准 SSL 证书。我找到的网页说我需要将证书安装到信任库中。我不想这样做(我没有必要的权限。)

  1. 有没有办法让 Java 忽略证书错误并接受它?
  2. 如果做不到这一点,有没有办法让我的程序在本地信任存储,而不是为整个 JVM 安装?

最佳答案

#1 的工作代码(在 jdk1.6.0_23 中)。

进口

import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.security.cert.X509Certificate;

实际信任所有 TrustManager 代码。

TrustManager trm = new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
return null;
}

public void checkClientTrusted(X509Certificate[] certs, String authType) {

}

public void checkServerTrusted(X509Certificate[] certs, String authType) {
}
};

SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, new TrustManager[] { trm }, null);
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

关于java - 是否可以让 Java 忽略 "trust store"并接受它获得的任何 SSL 证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1219208/

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