@Bean
public RestTemplate restTemplate() throws Exception {
// 创建一个信任所有证书的 TrustManager
TrustStrategy acceptAll = (x509Certificates, s) -> true;
SSLContext sslContext = SSLContexts.custom()
.loadTrustMaterial(null, acceptAll)
.build();
X509TrustManager trustManager = new TrustAllManager();
sslContext.init(null, new TrustManager[]{trustManager}, null);
SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient client = HttpClients.custom()
.setSSLContext(sslContext)
.setSSLSocketFactory(socketFactory)
.build();
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
requestFactory.setHttpClient(client);
requestFactory.setConnectTimeout(5 * 60 * 1000);
requestFactory.setReadTimeout(5 * 60 * 1000);
// 创建 RestTemplate 并设置请求工厂
RestTemplate restTemplate = new RestTemplate(requestFactory);
return restTemplate;
}
private static class TrustAllManager implements X509TrustManager {
@Override
public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
}
@Override
public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
}