You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Apache Client 4.5.5中处理无效SSL证书(规避弃用API)

解决Apache HttpClient 4.5.5中弃用SSLContextBuilder处理无效证书的问题

嗨,我来帮你搞定这个问题!在Apache HttpClient 4.5.x版本里,旧的org.apache.http.conn.ssl.SSLContextBuilder确实被标记为弃用了,官方推荐使用更现代的API来创建SSL上下文,既避免了弃用警告,也更符合当前的最佳实践。

替代方案:使用SSLContexts工具类或新的SSLContextBuilder

你可以通过以下两种方式来创建信任无效证书(比如自签名证书)的SSL上下文:

方式1:用SSLContexts工具类(推荐,更简洁)

SSLContexts是HttpClient提供的工具类,封装了常见的SSL上下文配置场景,代码非常简洁:

import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.ssl.SSLContexts;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import javax.net.ssl.SSLContext;

public class HttpClientExample {
    public static void main(String[] args) throws Exception {
        // 创建信任自签名证书的SSL上下文
        SSLContext sslContext = SSLContexts.custom()
                .loadTrustMaterial(new TrustSelfSignedStrategy())
                .build();

        // 将SSL上下文配置到HttpClient中
        CloseableHttpClient httpClient = HttpClients.custom()
                .setSSLContext(sslContext)
                .build();

        // 之后就可以用httpClient发送请求了
        // ...
    }
}

方式2:用新的SSLContextBuilder(更灵活)

如果你需要更自定义的信任策略,可以使用org.apache.http.ssl.SSLContextBuilder(注意是新的包路径,不是原来的conn.ssl下的):

import org.apache.http.ssl.SSLContextBuilder;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import javax.net.ssl.SSLContext;

public class HttpClientExample {
    public static void main(String[] args) throws Exception {
        // 自定义信任策略,这里以信任自签名证书为例
        TrustSelfSignedStrategy trustStrategy = new TrustSelfSignedStrategy();

        SSLContext sslContext = SSLContextBuilder.create()
                .loadTrustMaterial(trustStrategy)
                .build();

        CloseableHttpClient httpClient = HttpClients.custom()
                .setSSLContext(sslContext)
                .build();

        // 发送请求...
    }
}

关键说明

  • 旧的org.apache.http.conn.ssl.SSLContextBuilder被弃用后,功能迁移到了org.apache.http.ssl包下的同名类,同时loadTrustMaterial方法做了简化,不再需要传入第一个null参数(原来的参数用于指定密钥库,不需要的话可以直接省略)。
  • 注意:信任自签名证书这类无效证书只建议在测试环境使用,生产环境中一定要配置合法的信任证书,否则会带来严重的安全风险。

内容的提问来源于stack exchange,提问作者Soni Snehal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:21:36