【问题标题】:How to ignore SSL certificate errors in Apache HttpComponents HttpClient 5.1如何忽略 Apache HttpComponents HttpClient 5.1 中的 SSL 证书错误
【发布时间】:2021-11-21 07:21:35
【问题描述】:

如何绕过Apache HttpComponents HttpClient 5.1 的证书验证错误?

我发现了一个 working solution 来绕过 HttpClient 4.5 中建议自定义 HttpClient 实例的此类错误:

HttpClient httpClient = HttpClients
            .custom()
            .setSSLContext(new SSLContextBuilder().loadTrustMaterial(null, TrustAllStrategy.INSTANCE).build())
            .setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE)
            .build();

但它不适用于 HttpClient 5.1,因为 HttpClientBuilder 中不存在 setSSLContextsetSSLHostnameVerifier 方法(HttpClients.custom() 返回)。

【问题讨论】:

    标签: java ssl apache-httpcomponents apache-httpclient-5.x


    【解决方案1】:

    HC 5.1 中有几个专门的构建器可以用来做同样的事情:

    CloseableHttpClient httpclient = HttpClients.custom()
            .setConnectionManager(PoolingHttpClientConnectionManagerBuilder.create()
                    .setSSLSocketFactory(SSLConnectionSocketFactoryBuilder.create()
                            .setSslContext(SSLContextBuilder.create()
                                    .loadTrustMaterial(TrustAllStrategy.INSTANCE)
                                    .build())
                            .setHostnameVerifier(NoopHostnameVerifier.INSTANCE)
                            .build())
                    .build())
            .build();
    

    【讨论】:

      猜你喜欢
      • 2011-02-11
      • 2013-10-31
      • 2017-12-17
      • 1970-01-01
      • 2019-09-05
      • 1970-01-01
      • 2015-04-22
      • 1970-01-01
      相关资源
      最近更新 更多