当前位置: 首页 > 知识库问答 >
问题:

Apache HttpClient 5.1绕过SSL验证

范弘亮
2023-03-14

我已经配置了CloseableHttpAsyncClient,如下所述

   public CloseableHttpAsyncClient closeableHttpAsyncClient(){
        HttpAsyncClientBuilder clientBuilder = HttpAsyncClients.custom();
        final PoolingAsyncClientConnectionManager connManager = new PoolingAsyncClientConnectionManager();
        connManager.setMaxTotal(10);
        clientBuilder.setConnectionManager(connManager);

        clientBuilder.setRedirectStrategy(DefaultRedirectStrategy.INSTANCE);
        CloseableHttpAsyncClient closeableHttpAsyncClient = clientBuilder.build();
        return closeableHttpAsyncClient;
}

我想绕过SSL验证。我试图检查不同的配置,但没有找到解决方案。

共有1个答案

姚昊焱
2023-03-14

可以设置自定义TLS上下文,并将其与默认TLS策略一起使用,如下所述:

https://github.com/apache/httpcomponents-client/blob/5.1.x/httpclient5/src/test/java/org/apache/hc/client5/http/examples/AsyncClientCustomSSL.java

在此特定示例中,连接管理器已配置为信任所有证书,除了标准CA之外,CN等于httpbin.org。人们可以选择不同的策略或不分青红皂白地信任所有证书,尽管强烈反对后者。

final SSLContext sslcontext = SSLContexts.custom()
        .loadTrustMaterial(new TrustStrategy() {

            @Override
            public boolean isTrusted(
                    final X509Certificate[] chain,
                    final String authType) throws CertificateException {
                // Trust all certs with CN equal `httpbin.org`
                final X509Certificate cert = chain[0];
                return "CN=httpbin.org".equalsIgnoreCase(cert.getSubjectDN().getName());
            }

        })
        .build();
final TlsStrategy tlsStrategy = ClientTlsStrategyBuilder.create()
        .setSslContext(sslcontext)
        .build();
final PoolingAsyncClientConnectionManager cm = PoolingAsyncClientConnectionManagerBuilder.create()
        .setTlsStrategy(tlsStrategy)
        .build();
 类似资料:
  • 尽管我保留了verify=false,但在Python中还是出现了ssl错误。你能告诉我如何避免吗?但是curl命令使用-k选项。 错误:

  • 我正在尝试将KeyClope作为testcontainer添加到我的应用程序中。net核心(5)使用dotnet testcontainers库进行集成测试。 我的问题是,我的集成测试中有一个使用自签名证书和TestServer类的容器,这使我很难获得HTTPS支持。 确切地说,我正在使用Microsofts TestServer类创建真正的API请求,其中包含一个内存配置,用于使用带有公开端口8

  • 简要描述 有些时候,通用的绕过技巧并不可行,这个时候我们就得观察缺陷点的周围环境,想想其它办法咯。“猥琐绕过”与通用绕过不 同的是,它通用性小,往往只是特例。 详细说明 1. 直接看实例点: http://qzs.qq.com/qzone/v6/custom/custom_module_proxy.html#siDomain=1&g_StyleID=aaaaaaaaaa 2. 可以看出,这是一个

  • 简要描述 关于反射型的基本东西,暂时就到这啦,如果后面有什么好的 case,再做增补。最近,有些人会问到怎么绕过浏览器的 XSS 过滤 器,所以从这节开始,给出点绕过的例子。当然这些绕过浏览器的方法,不是万能的。不同浏览器,不同场景都会存在差异。满足场景 要求时,才可以使用。 此文给出的是一个来自 sogili 分享的 chrome 下绕过过滤器的方法,在腾讯某处 XSS 上的应用。 这一类都算是

  • 问题内容: 发现我的浏览器正在通过软件运行,因此我得到了。当我手动启动铬并执行相同的步骤时,不会出现reCaptcha。 是否可以以编程方式解决验证码或在使用时摆脱它?有什么办法解决这个问题? 只有在没有选择的情况下才会发生这种情况 还是这是我们必须接受并继续前进的事实? 问题答案: 尝试使用此npm软件包生成随机useragent 。这通常可以解决基于用户代理的保护。 在伪造者页面中,可以使用

  • 问题内容: 我有一些AES / GCM加密数据,想对其解密。我想绕过身份验证解密它,因为数据不包含身份验证信息(数据由第三方应用程序加密)。我尝试使用javax.crypto包进行解密,但它始终会引发标签不匹配错误。有什么方法可以绕过此标签检查并解密数据。数据使用AES128加密,并且使用12字节初始化向量。 编辑:我得到了这个问题的临时解决方案。不知道这是否是正确的方法。 问题答案: 是的,可以