zoukankan      html  css  js  c++  java
  • SpringBoot用restTemplate调用https接口报 sun.security.validator.ValidatorException: PKIX path 。。。

    修改自:http://blog.joylau.cn/2020/10/19/SpringBoot-RestTemplate-SSL/

    解决办法是写一个@Configuration配置类,里面添加代码:

    import org.apache.http.conn.ssl.NoopHostnameVerifier;
        import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
        import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
        import org.apache.http.impl.client.CloseableHttpClient;
        import org.apache.http.impl.client.HttpClients;
        import org.apache.http.ssl.SSLContextBuilder;
    
    
        @Bean
        public RestTemplate restTemplate(){
            return new RestTemplateBuilder.build();
        }
    
        /**
         * HTTPS RestTemplate
         */
        @Bean
        public RestTemplate httpsRestTemplate() throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException {
            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);
        }

    然后用的地方由原来的:

    @Resource
    private RestTemplate restTemplate;

    改成:

    @Resource
    private RestTemplate httpsRestTemplate;

    即可;

  • 相关阅读:
    Zookeeper搭建集群及协同
    无限可能,Elasticsearch(一)
    如何打造一款m3u8视频爬虫
    垃圾如何进行自救
    必知必会的JavaJDK工具
    如何在局域网内开一家电影院
    谈谈网络游戏中的延迟解决方案
    简述一致性哈希算法
    Python网络爬虫实战(五)批量下载B站收藏夹视频
    Python网络爬虫实战(四)模拟登录
  • 原文地址:https://www.cnblogs.com/silentdoer/p/14179598.html
Copyright © 2011-2022 走看看