From de2bb731b586d5b68073d9f0723e3fe85cfb802f Mon Sep 17 00:00:00 2001
From: xiongxiaoyang <773861846@qq.com>
Date: Thu, 12 Dec 2019 18:00:06 +0800
Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E8=AF=B4=E7=88=AC=E8=99=AB=E8=AF=B7?=
 =?UTF-8?q?=E6=B1=82=E5=BF=BD=E7=95=A5SSL=E8=AF=81=E4=B9=A6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../java2nb/books/util/RestTemplateUtil.java  | 34 ++++++++++++++++---
 1 file changed, 29 insertions(+), 5 deletions(-)

diff --git a/novel-admin/src/main/java/com/java2nb/books/util/RestTemplateUtil.java b/novel-admin/src/main/java/com/java2nb/books/util/RestTemplateUtil.java
index 08fa09b..858b2e3 100644
--- a/novel-admin/src/main/java/com/java2nb/books/util/RestTemplateUtil.java
+++ b/novel-admin/src/main/java/com/java2nb/books/util/RestTemplateUtil.java
@@ -1,22 +1,46 @@
 package com.java2nb.books.util;
 
+import lombok.SneakyThrows;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.conn.ssl.TrustStrategy;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
 import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
 import org.springframework.http.converter.HttpMessageConverter;
 import org.springframework.http.converter.StringHttpMessageConverter;
 import org.springframework.web.client.RestTemplate;
 
+import javax.net.ssl.SSLContext;
 import java.nio.charset.Charset;
+import java.security.cert.X509Certificate;
 import java.util.List;
 
 public class RestTemplateUtil {
 
 
+    @SneakyThrows
     public static RestTemplate getInstance(String charset) {
-        HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory();
-        httpRequestFactory.setConnectionRequestTimeout(3000);
-        httpRequestFactory.setConnectTimeout(3000);
-        httpRequestFactory.setReadTimeout(10000);
-        RestTemplate restTemplate = new RestTemplate(httpRequestFactory);
+        TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true;
+
+        //忽略证书
+        SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom()
+                .loadTrustMaterial(null, acceptingTrustStrategy)
+                .build();
+
+        SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext);
+
+        CloseableHttpClient httpClient = HttpClients.custom()
+                .setSSLSocketFactory(csf)
+                .build();
+
+        HttpComponentsClientHttpRequestFactory requestFactory =
+                new HttpComponentsClientHttpRequestFactory();
+
+        requestFactory.setHttpClient(httpClient);
+        requestFactory.setConnectionRequestTimeout(3000);
+        requestFactory.setConnectTimeout(3000);
+        requestFactory.setReadTimeout(10000);
+        RestTemplate restTemplate = new RestTemplate(requestFactory);
         List<HttpMessageConverter<?>> list = restTemplate.getMessageConverters();
         for (HttpMessageConverter<?> httpMessageConverter : list) {
             if(httpMessageConverter instanceof StringHttpMessageConverter) {