美文网首页
跳过 Java SSL 校验

跳过 Java SSL 校验

作者: mougagit | 来源:发表于2019-08-26 11:15 被阅读0次

无论使用什么 HttpClient, 只要用了SSL, java都会有求校验证书. 下面举例 apache HttpClient 跳过证书校验.

@Bean
public SSLContext sslContext() throws NoSuchAlgorithmException, KeyManagementException {
    KeyManager[] keyManagers = new KeyManager[0];
    TrustManager[] trustManagers = new TrustManager[]{new 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];
        }
    }};
    SSLContext sslContext = SSLContext.getInstance("TLS");
    sslContext.init(keyManagers, trustManagers, new SecureRandom());
    return sslContext;
}

@Bean
public HttpClient closeableHttpClient(RequestConfig requestConfig, SSLContext sslContext) {
    return HttpClients.custom()
            .setRetryHandler(new StandardHttpRequestRetryHandler(2, true))
            .setSSLHostnameVerifier((s, sslSession) -> true)
            .setSSLContext(sslContext)
            .setDefaultRequestConfig(requestConfig)
            .setMaxConnTotal(maxCPoolSize)
            .build();
}

相关文章

网友评论

      本文标题:跳过 Java SSL 校验

      本文链接:https://www.haomeiwen.com/subject/vzlrectx.html