使用 PoolingNHttpClientConnectionManager 在 HttpClient 上禁用 SSL

用户 3

我正在尝试在我的CloseableHttpAsyncClient. 下面是我使用的代码:

private synchronized CloseableHttpAsyncClient getCloseableClient() throws Exception {
    if (closeableHttpAsyncClient == null) {
        logger.info("New Async Client created ");
        closeableHttpAsyncClient = HttpAsyncClientBuilder.create()
                .setDefaultRequestConfig(createConnConfig())
                .setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE)
                .setSSLContext(new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() {
                            @Override
                            public boolean isTrusted(java.security.cert.X509Certificate[] x509Certificates, String s) throws CertificateException {
                                return true;
                            }
                        }).build())
                // .setKeepAliveStrategy(kepAliveStrategy) TODO
                .setConnectionManager(createPoolingConnManager()).build();

        closeableHttpAsyncClient.start();
    }
    return closeableHttpAsyncClient;
}

但是,当我运行上述命令时,我仍然得到:

javax.net.ssl.SSLHandshakeException: General SSLEngine problem

这里可能有什么问题,我想我也必须修改我的PoolingNHttpClientConnectionManager但是我不知道如何做到这一点。任何指针都会有所帮助

ok2c

您的代码的问题在于#setConnectionManager调用覆盖#setSSLContext使SSLContext实例无效。

要么让我们HttpAsyncClientBuilder在内部创建一个连接管理器

SSLContext sslContext = new SSLContextBuilder()
        .loadTrustMaterial(null, (x509Certificates, s) -> true)
        .build();

HttpAsyncClientBuilder.create()
        .setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE)
        .setSSLContext(sslContext)
        .build();

或者将SSLContext实例PoolingNHttpClientConnectionManager作为构造函数参数传递

SSLContext sslContext = new SSLContextBuilder()
        .loadTrustMaterial(null, (x509Certificates, s) -> true)
        .build();

Registry<SchemeIOSessionStrategy> registry = RegistryBuilder.<SchemeIOSessionStrategy>create()
    .register("http", NoopIOSessionStrategy.INSTANCE)
    .register("https", new SSLIOSessionStrategy(sslContext, NoopHostnameVerifier.INSTANCE))
    .build();

DefaultConnectingIOReactor ioReactor = new DefaultConnectingIOReactor();
HttpAsyncClientBuilder.create()
        .setConnectionManager(new PoolingNHttpClientConnectionManager(ioReactor, registry))
        .build();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Net 4.6中按请求级别禁用httpclient ssl验证

来自分类Dev

如何使用HttpClient的在使用SSL证书,无论多么“糟糕”是

来自分类Dev

由于使用POODLE漏洞,我使用的API服务正在禁用SSL 3.0。如果我使用HttpClient和HttpRequestMessage,是否需要更改代码?

来自分类Dev

由于使用POODLE漏洞,我使用的API服务禁用了SSL 3.0。如果我使用HttpClient和HttpRequestMessage,是否需要更改代码?

来自分类Dev

使用SSL时HttpClient和HttpsURLConnection返回不同的证书

来自分类Dev

在Apache HttpClient 4.3.6上禁用NTLM

来自分类Dev

在Apache HttpClient 4.3.6上禁用NTLM

来自分类Dev

仅使用.htaccess文件从主页禁用SSL

来自分类Dev

在 PHP 上使用 SSL 卷曲

来自分类Dev

使用HttpClient的Windows Phone 8.1上的Cookie

来自分类Dev

在wpf项目中的HttpClient上使用await

来自分类Dev

在Unity上使用.NET自己的httpClient类

来自分类Dev

使用httpclient在Android上保持Cookie会话

来自分类Dev

使用HttpClient的Windows Phone 8.1上的Cookie

来自分类Dev

在wpf项目中的HttpClient上使用await

来自分类Dev

在Chef服务器上禁用SSL?

来自分类Dev

在Chef服务器上禁用SSL?

来自分类Dev

如何在Apache HttpClient中使用SSL客户端证书?

来自分类Dev

如何使用Apache HttpClient 4.3.4通过代理测试与服务器SSL端口的连接?

来自分类Dev

在SSL上使用private_pub

来自分类Dev

在WordPress档案上强制使用SSL

来自分类Dev

在Android上使用Retrofit的Vimeo SSL错误

来自分类Dev

SSL:使用HTTPS在Nexus上获取工件

来自分类Dev

在 RHEL 上使用 Lets Encrypt 设置 SSL

来自分类Dev

我在可移植类库上使用HttpClient获得403

来自分类Dev

HttpClient不使用登台服务器上的缓存

来自分类Dev

在Android上使用Loopj实现基本的HttpClient发布

来自分类Dev

使用方括号在 httpClient 上发送帖子参数

来自分类Dev

如何在DB2上禁用SSL3?

Related 相关文章

  1. 1

    在Net 4.6中按请求级别禁用httpclient ssl验证

  2. 2

    如何使用HttpClient的在使用SSL证书,无论多么“糟糕”是

  3. 3

    由于使用POODLE漏洞,我使用的API服务正在禁用SSL 3.0。如果我使用HttpClient和HttpRequestMessage,是否需要更改代码?

  4. 4

    由于使用POODLE漏洞,我使用的API服务禁用了SSL 3.0。如果我使用HttpClient和HttpRequestMessage,是否需要更改代码?

  5. 5

    使用SSL时HttpClient和HttpsURLConnection返回不同的证书

  6. 6

    在Apache HttpClient 4.3.6上禁用NTLM

  7. 7

    在Apache HttpClient 4.3.6上禁用NTLM

  8. 8

    仅使用.htaccess文件从主页禁用SSL

  9. 9

    在 PHP 上使用 SSL 卷曲

  10. 10

    使用HttpClient的Windows Phone 8.1上的Cookie

  11. 11

    在wpf项目中的HttpClient上使用await

  12. 12

    在Unity上使用.NET自己的httpClient类

  13. 13

    使用httpclient在Android上保持Cookie会话

  14. 14

    使用HttpClient的Windows Phone 8.1上的Cookie

  15. 15

    在wpf项目中的HttpClient上使用await

  16. 16

    在Chef服务器上禁用SSL?

  17. 17

    在Chef服务器上禁用SSL?

  18. 18

    如何在Apache HttpClient中使用SSL客户端证书?

  19. 19

    如何使用Apache HttpClient 4.3.4通过代理测试与服务器SSL端口的连接?

  20. 20

    在SSL上使用private_pub

  21. 21

    在WordPress档案上强制使用SSL

  22. 22

    在Android上使用Retrofit的Vimeo SSL错误

  23. 23

    SSL:使用HTTPS在Nexus上获取工件

  24. 24

    在 RHEL 上使用 Lets Encrypt 设置 SSL

  25. 25

    我在可移植类库上使用HttpClient获得403

  26. 26

    HttpClient不使用登台服务器上的缓存

  27. 27

    在Android上使用Loopj实现基本的HttpClient发布

  28. 28

    使用方括号在 httpClient 上发送帖子参数

  29. 29

    如何在DB2上禁用SSL3?

热门标签

归档