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

原因

https证书
请求为https
缺少安全证书认证

解决方式

若是内部调用,不担心安全问题则直接调整代码如下
httpclients的修改方式

// 修改HTTP client的创建方式
CloseableHttpClient httpClient = null;
// 创建Httpclient对象   actionUrl为请求全路径
 if (actionUrl.startsWith(HTTPS)) {
     // 创建一个SSL信任所有证书的httpClient对象
     httpClient = HttpClientUtil.getSSLInsecure();
 } else {
     httpClient = HttpClients.createDefault();
 }

getSSLInsecure为自定义方法 如下定义 放到同一类下即可

    public static CloseableHttpClient createSSLInsecureClient() {
        try {
            SSLConnectionSocketFactory sslcsf = new SSLConnectionSocketFactory(
                    SSLContexts.custom().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build(),
                    NoopHostnameVerifier.INSTANCE);

            return HttpClients.custom().setSSLSocketFactory(sslcsf).build();
        } catch (Exception e) {
        	// 日志不需要可以换为 其他 如e.printStackTrace();
            logger.error("createSSLInsecureClient方法出现异常", e);
        }

        return HttpClients.createDefault();
    }

版权声明:本文为weixin_44131922原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。