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

Application.yml配置证书后WebClientSsl无法识别'my-bundle'问题

解决WebClient无法识别SSL Bundle的问题

可能的原因及修复步骤

1. 确认Spring Boot版本

SSL Bundle是Spring Boot 3.1及以上版本引入的特性,若项目版本低于3.1,my-bundle会无法被识别。请检查pom.xml或build.gradle中的Spring Boot版本,升级至3.1及以上。

2. 修正application.yml配置

确保SSL Bundle的配置结构完整、格式正确:

spring:
  ssl:
    bundle:
      my-bundle:
        pem:
          client:
            truststore:
              # 单个证书用certificate,多个证书用certificates(数组格式)
              certificate: |
                -----BEGIN CERTIFICATE-----
                ... 完整的证书内容 ...
                -----END CERTIFICATE-----

注意用|保留证书内容的换行格式,避免证书内容被压缩导致解析失败。

3. 调整WebClient配置方式

若自动配置仍不生效,可手动基于SSL Bundle构建SslContext并配置WebClient:

@Configuration
public class WebClientConfiguration {

    private final SslBundleRegistry sslBundleRegistry;

    public WebClientConfiguration(SslBundleRegistry sslBundleRegistry) {
        this.sslBundleRegistry = sslBundleRegistry;
    }

    @Bean
    public WebClient myWebClient() {
        SslBundle sslBundle = sslBundleRegistry.getBundle("my-bundle");
        SslContext sslContext = SslContextBuilder
                .forClient()
                .trustManager(sslBundle.getTrustManagerFactory())
                .build();

        return WebClient.builder()
                .clientConnector(new ReactorClientHttpConnector(HttpClient.create().secure(t -> t.sslContext(sslContext))))
                .baseUrl("**.com")
                .build();
    }
}

4. 排查配置冲突

检查项目中是否存在其他手动配置的SslContext或HttpClientBean,这类配置可能会覆盖SSL Bundle的自动加载逻辑,导致bundle无法被识别。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 18:57:06