RestTemplate调用异常:sun.security.provider.certpath


RestTemplate调用异常:sun.security.provider.certpath

安全问题

解决:

1.导入依赖



    org.apache.httpcomponents
    httpcore
    4.4.10


    org.apache.httpcomponents
    httpclient
    4.5.12

2.修改RestTemplate的配置

    @Bean
    public RestTemplate restTemplate() throws Exception {

        SSLContextBuilder builder = new SSLContextBuilder();
        builder.loadTrustMaterial(null, new TrustSelfSignedStrategy());
        SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(builder.build(), NoopHostnameVerifier.INSTANCE);

        CloseableHttpClient httpClient
                = HttpClients.custom()
                .setSSLHostnameVerifier(new NoopHostnameVerifier())
                .setSSLSocketFactory(sslConnectionSocketFactory)
                .build();
        HttpComponentsClientHttpRequestFactory requestFactory
                = new HttpComponentsClientHttpRequestFactory();
        requestFactory.setHttpClient(httpClient);
        requestFactory.setConnectTimeout((int) Duration.ofSeconds(5).toMillis());
        return new RestTemplate(requestFactory);

//        return new RestTemplate();
    }