Как проигнорировать ошибки сертификата SSL в Apache HttpClient 4.0

Как я обхожу недопустимые ошибки сертификата SSL с Apache HttpClient 4.0?

114
задан Stephen C 25 October 2018 в 14:44
поделиться

1 ответ

Вам необходимо создайте SSLContext с вашим собственным TrustManager и создайте схему HTTPS, используя этот контекст. Вот код

SSLContext sslContext = SSLContext.getInstance("SSL");

// set up a TrustManager that trusts everything
sslContext.init(null, new TrustManager[] { new X509TrustManager() {
            public X509Certificate[] getAcceptedIssuers() {
                    System.out.println("getAcceptedIssuers =============");
                    return null;
            }

            public void checkClientTrusted(X509Certificate[] certs,
                            String authType) {
                    System.out.println("checkClientTrusted =============");
            }

            public void checkServerTrusted(X509Certificate[] certs,
                            String authType) {
                    System.out.println("checkServerTrusted =============");
            }
} }, new SecureRandom());

SSLSocketFactory sf = new SSLSocketFactory(sslContext);
Scheme httpsScheme = new Scheme("https", 443, sf);
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(httpsScheme);

// apache HttpClient version >4.2 should use BasicClientConnectionManager
ClientConnectionManager cm = new SingleClientConnManager(schemeRegistry);
HttpClient httpClient = new DefaultHttpClient(cm);
81
ответ дан 24 November 2019 в 02:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: