gpt4 book ai didi

security - 如何使用JAVA URL httpsconnection发送没有证书的https请求

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

我需要从 HTTPS url 检索内容,但我总是收到此错误:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)

这是我的代码:

URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
con.setHostnameVerifier(new AlwaysTrustHostnameVerifier());

class AlwaysTrustHostnameVerifier implements X509TrustManager, HostnameVerifier
{
@Override
public void checkClientTrusted(X509Certificate[] arg0, String arg1)
throws CertificateException {
// TODO Auto-generated method stub

}
@Override
public void checkServerTrusted(X509Certificate[] arg0, String arg1)
throws CertificateException {
// TODO Auto-generated method stub

}
@Override
public X509Certificate[] getAcceptedIssuers() {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean verify(String arg0, SSLSession arg1) {
// TODO Auto-generated method stub
return false;
}
}

所以我不知道我是否可以在不安装安全证书的情况下检索或发布到 https url?我曾经使用过 NodeJS/PHP,都是可行的,只是通过添加一些头信息来忽略错误,例如 rejectUnauthorized 为 false...

Java 中是否有任何解决方法可以让我无需安装安全证书就可以向 https 发送请求?

谢谢

最佳答案

这是一个bug在 openJDK 中,您可能需要获取 openJDK 的最新修复版本或迁移到 OracleJDK。

关于security - 如何使用JAVA URL httpsconnection发送没有证书的https请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28620312/

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