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

SpringBoot 2.0.4中如何禁用WebClient SSL验证?——与SpringBoot 2.1实现方式的差异解析

在Spring Boot 2.0中禁用WebClient SSL验证的正确姿势

你说得没错,Spring Boot 2.0的ReactorClientHttpConnector确实只提供了接收Consumer<HttpClientOptions.Builder>的构造方法,没法直接用2.1版本那种传入现成HttpClient的写法。不过咱们可以通过配置HttpClientOptions.Builder来实现同样的禁用SSL验证效果。

直接可用的代码示例

import io.netty.handler.ssl.SslContext;
import io.netty.handler.ssl.SslContextBuilder;
import io.netty.handler.ssl.util.InsecureTrustManagerFactory;
import org.springframework.http.client.reactive.ReactorClientHttpConnector;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.netty.http.client.HttpClientOptions;

public WebClient createUnsecuredWebClient() {
    // 构建信任所有证书的SslContext
    SslContext sslContext = SslContextBuilder.forClient()
            .trustManager(InsecureTrustManagerFactory.INSTANCE)
            .build();

    // 通过HttpClientOptions.Builder配置SSL
    return WebClient.builder()
            .clientConnector(new ReactorClientHttpConnector(options -> {
                // 启用SSL支持并注入自定义的SslContext
                options.sslSupport(sslOptions -> sslOptions.sslContext(sslContext));
            }))
            .build();
}

和2.1版本的写法差异对比

  • Spring Boot 2.1+:可以直接创建HttpClient实例,调用secure(t -> t.sslContext(context))配置后传入ReactorClientHttpConnector
  • Spring Boot 2.0:必须通过HttpClientOptions.Builder的sslSupport()方法来设置我们的SslContext,这是2.0版本里配置SSL的唯一入口

这样配置出来的WebClient就会跳过SSL证书验证,和2.1版本的实现效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 00:02:29