[ 登录 ] - [ 注册 ] | 开发者(推广)分成 无忧代理IP最新上线 | 代码示例 | IP测试视频 |

sun.security.validator.ValidatorException: PKIX path building failed

作者:数据无忧   时间:2019-02-13 15:21:37
Java做爬虫处理HTTPS链接时报错sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

这个是因为程序未处理证书才会报这个错误,解决办法只需要信任证书即可。添加下面的工具类:

// 信任所有证书    
public class TrustCertsUtil {
public static void trustAllHttpsCertificates() {
// 如果爬虫请求HTTPS网址,必须加入这两行
System.setProperty("jdk.http.auth.proxying.disabledSchemes", "");
System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");
try {
       javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];
       javax.net.ssl.TrustManager tm = new MITM();
       trustAllCerts[0] = tm;
       javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("TLS");
       sc.init(null, trustAllCerts, null);
       javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (Exception e) {
System.err.println("【DATA5U】设置证书出错,原因:" + e.getMessage());
}
}
   static class MITM implements javax.net.ssl.TrustManager, javax.net.ssl.X509TrustManager {
       public java.security.cert.X509Certificate[] getAcceptedIssuers() {
           return null;
       }
       public boolean isServerTrusted(java.security.cert.X509Certificate[] certs) {
           return true;
       }
       public boolean isClientTrusted(java.security.cert.X509Certificate[] certs) {
           return true;
       }
       public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType)
               throws java.security.cert.CertificateException {
           return;
       }
       public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType)
               throws java.security.cert.CertificateException {
           return;
       }
   }
}


然后再项目的main方法中加入这行代码即可:TrustCertsUtil.trustAllHttpsCertificates();

如果项目使用的是HttpClient,上面的方法还不见效,请参考  HttpClient跳过证书的方法


无忧代理IP(www.data5u.com)原创文章,转载请注明出处。

抽取IP代金券
返回顶部
在线咨询
人工客服
 QQ交流群 - 001
QQ:340529947(满)
 QQ交流群 - 002
QQ:828393818
 售前咨询 - 001
QQ:1598729786
 技术支持 - 001
QQ:2562178315
为了避免 QQ 丢消息,请尽量添加客服为 QQ 好友。
客服工作时间08:30──17:30
关注微信
在线咨询
人工客服
 QQ交流群 - 001
QQ:340529947(满)
 QQ交流群 - 002
QQ:828393818
 售前咨询 - 001
QQ:1598729786
 技术支持 - 001
QQ:2562178315
为了避免 QQ 丢消息,请尽量添加客服为 QQ 好友。
客服工作时间08:30──17:30
电话:4007-745-096
QQ:
周一至周日8:30-18:00 技术部电话热线