全局信任证书
TrustManager[] trustAllCerts = new TrustManager[] {new X509TrustManager() {public void checkClientTrusted(X509Certificate[] chain, String authType) {}public void checkServerTrusted(X509Certificate[] chain, String authType) {}public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; }}};SSLContext sslContext = SSLContext.getInstance("TLS");sslContext.init(null, trustAllCerts, new java.security.SecureRandom());HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());HttpsURLConnection.setDefaultHostnameVerifier((hostname, session) -> true);
请求某接口信任证书
public static HttpClient getHttpsClient(String url) throws Exception {SSLContext sslContext;RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(connectionTimeout).setSocketTimeout(socketTimeout).setConnectionRequestTimeout(connectionRequestTimeout).build();try {sslContext = new SSLContextBuilder().loadTrustMaterial(null, (TrustStrategy) (chain, authType) -> true).build();} catch (NoSuchAlgorithmException | KeyManagementException | KeyStoreException e) {throw new PtException("操作失败", e);}SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, new String[]{"TLSv1.2", "TLSv1.1", "TLSv1", "SSLv3"}, null, NoopHostnameVerifier.INSTANCE);return url.startsWith("https:") ? HttpClients.custom().setDefaultRequestConfig(requestConfig).setSSLSocketFactory(sslsf).build() :HttpClients.custom().setDefaultRequestConfig(requestConfig).build();}