springboot 使用RestTemplate调用https接口unable to find valid certification path to requested targer pfix,可以绕过证书
使用以下 代码即可绕过证书限制
`@Slf4j
public class RestTemplateUtil {
public static RestTemplate getRestTemplate(int timeOut){
ClientHttpRequestFactory requestFactory = null;
try {
requestFactory = new HttpComponentsClientHttpRequestFactory(httpClient(timeOut));
} catch (Exception e) {
log.info("RestTemplateConfig 出现异常:",e);
}
return new RestTemplate(requestFactory);
}
/**
* 绕过ssl 验证
*/
private static org.apache.http.client.HttpClient httpClient(int timeOut) throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException {
RequestConfig requestConfig = RequestConfig.custom()
.setSocketTimeout(timeOut) // 服务器返回数据(response)的时间,超时抛出read timeout
.setConnectTimeout(timeOut) // 连接上服务器(握手成功)的时间,超时抛出connect timeout
.setConnectionRequestTimeout(timeOut)// 从连接池中获取连接的超时时间,超时抛出ConnectionPoolTimeoutException
.build();
SSLContext sslContext = SSLContextBuilder.create().setProtocol(SSLConnectionSocketFactory.SSL).loadTrustMaterial((x, y) -> true).build();
return HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).setSSLContext(sslContext).setSSLHostnameVerifier((x, y) -> true).build();
}
}`
本文介绍了在SpringBoot中使用RestTemplate调用HTTPS接口时,如何解决'unable to find valid certification path to requested target'错误,通过特定代码配置可以绕过证书限制。
3506

被折叠的 条评论
为什么被折叠?



