javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building
来源:互联网 发布:画框软件 编辑:程序博客网 时间:2024/06/05 20:23
昨天接到领导布置的任务,与集团旗下一个子公司妙健康做接口开发,他们的接口是https的,因此我采用HttpsURLConnection来建立https网站发起的请求连接,测试demo代码如下:
package com.pcmall;import java.net.HttpURLConnection;import java.net.URL;import java.security.cert.CertificateException;import java.security.cert.X509Certificate;import javax.net.ssl.*;public class TrustSSL { public static void main(String[] args) throws Exception { URL console = new URL("https://xxx.xxx.xxx/xxx/xxx/xxx"); HttpURLConnection conn = (HttpURLConnection) console.openConnection(); conn.connect(); System.out.println(conn.getResponseCode()); }}报如下错误:
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
网上百度了一下,说是HTTPS证书过时导致的,我们在这里写一个假的安全验证,则成功解决该问题,解决成功后代码如下:
package com.pcmall;import java.net.HttpURLConnection;import java.net.URL;import java.security.cert.CertificateException;import java.security.cert.X509Certificate;import javax.net.ssl.*;public class TrustSSL { private static class TrustAnyTrustManager implements X509TrustManager { public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[]{}; } } private static class TrustAnyHostnameVerifier implements HostnameVerifier { public boolean verify(String hostname, SSLSession session) { return true; } } public static void main(String[] args) throws Exception { URL console = new URL("https://xxx.xxx.xxx/xxx/xxx/xxx"); HttpURLConnection conn = (HttpURLConnection) console.openConnection(); if (conn instanceof HttpsURLConnection) { SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom()); ((HttpsURLConnection) conn).setSSLSocketFactory(sc.getSocketFactory()); ((HttpsURLConnection) conn).setHostnameVerifier(new TrustAnyHostnameVerifier()); } conn.connect(); System.out.println(conn.getResponseCode()); }}这个方法问了一圈同事,居然没人知道,我很是无语。
1 0
- javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building f
- javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException: PKIX path building失败
- javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building f
- javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building
- Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path
- 解决 javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path buildin
- 报错javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException
- sun.security.validator.ValidatorException: PKIX path building failed:
- sun.security.validator.ValidatorException: PKIX path building failed:
- 爬数据出现错误javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException
- sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath
- Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provid
- javax.net.ssl.SSLHandshakeException:PKIX path building failed解决方法
- SSLHandshakeException: *.ValidatorException: PKIX path building failed: *.SunCertPathBuilderExceptio
- ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderExce
- javax.net.ssl.SSLHandshakeException:PKIX path building failed多个证书解决方法
- javax.net.ssl.SSLHandshakeException:PKIX path building failed解决方法的代码
- https请求证书异常javax.net.ssl.SSLHandshakeException sun.security.validator.Validator
- Jetty实战(2)之嵌入式运行Jetty多Connector
- MFCC
- Linux中查看cpu信息
- 企业级Docker Registry开源工具Harbor的用户使用指南
- Java面试值 从大字符串中汇总统计小字符串出现的次数
- javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building
- BeanFactory和FactoryBean的区别
- tomcat配置https自签名证书
- 伪静态重写模块rewrite.dll及httpd.ini文件参考下载
- 选择困难症!接口?虚基类?
- 上传图片之表单请求
- alert 和 console.log的区别
- BIOS工作原理
- 我的服务器开发之路-安装thinkphp