首页 > Web开发 > 详细

调用https接口 报错:unable to find valid certification path

时间:2019-09-25 16:34:47      阅读:109      评论:0      收藏:0      [点我收藏+]

网上查了一大堆 基本都是 keytool导入证书

keytool -import -alias ee  -keystore "C:\Program Files\Java\jre1.8.0_221\lib\security\cacerts" -file D:\cert\ee.cer -storepass changeit

但是:导入完之后我遇到了一个问题 莫名其妙的有时候好使有时候不好使

最终尝试了N+1次之后,发现 证书名字和别名是一个字母也提示添加成功 但是就是不好使,2个字母就好使(我也不知道什么原因)

 

RestTemplate POST 请求证书验证解决办法

final static RestTemplate restTemplate = new RestTemplate(generateHttpsRequestFactory());
private static HttpComponentsClientHttpRequestFactory generateHttpsRequestFactory() {
try {
TrustStrategy acceptingTrustStrategy = (x509Certificates, authType) -> true;
SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy)
.build();
SSLConnectionSocketFactory connectionSocketFactory =
new SSLConnectionSocketFactory(sslContext, new NoopHostnameVerifier());

HttpClientBuilder httpClientBuilder = HttpClients.custom();
httpClientBuilder.setSSLSocketFactory(connectionSocketFactory);
CloseableHttpClient httpClient = httpClientBuilder.build();
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
factory.setHttpClient(httpClient);
factory.setConnectTimeout(5 * 1000);
factory.setReadTimeout(5 * 1000);
return factory;
} catch (Exception e) {
throw new RuntimeException("创建HttpsRestTemplate失败", e);
}
}

调用https接口 报错:unable to find valid certification path

原文:https://www.cnblogs.com/wangchaoyu/p/11585164.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!