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

如何在Spring Boot Admin Client中绕过证书验证?配置集成咨询

如何在Spring Boot Admin客户端中绕过证书验证?

要让Spring Boot Admin(SBA)客户端绕过SSL证书验证,核心是让SBA客户端使用你自定义的、已经配置好证书忽略逻辑的RestTemplate。因为SBA客户端是自动配置的,它会优先使用Spring容器中存在的RestTemplate Bean,而不是默认创建的实例。

解决方案步骤:

  1. 将SSL绕过逻辑封装为Spring管理的RestTemplate Bean
    把你已有的SSL验证绕过代码改成配置类,注册成Bean,这样SBA客户端会自动复用这个实例:
@Configuration
public class CustomSslRestTemplateConfig {

    @Bean
    public RestTemplate sbaRestTemplate() throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException {
        // 信任所有证书的策略
        TrustStrategy acceptingTrustStrategy = (x509Certificates, authType) -> true;

        // 构建忽略证书的SSL上下文
        SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom()
                .loadTrustMaterial(null, acceptingTrustStrategy)
                .build();

        // 使用NoopHostnameVerifier忽略主机名验证
        SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext, new NoopHostnameVerifier());

        // 构建自定义HttpClient
        CloseableHttpClient httpClient = HttpClients.custom()
                .setSSLSocketFactory(csf)
                .build();

        // 配置请求工厂
        HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
        requestFactory.setHttpClient(httpClient);

        return new RestTemplate(requestFactory);
    }
}
  1. 确保依赖齐全
    因为用到了Apache HttpClient的相关类,需要在你的构建文件中添加依赖:

Maven(pom.xml):

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
</dependency>

Gradle(build.gradle):

implementation 'org.apache.httpcomponents:httpclient'
  1. 配置SBA客户端参数
    在application.properties中配置SBA服务端的地址、认证信息等:
spring.application.name=Admin-Application
server.port=1111
# SBA客户端核心配置
spring.boot.admin.client.url=https://your-sba-server-address
spring.boot.admin.client.username=admin
spring.boot.admin.client.password=admin123

原理说明:

Spring Boot Admin客户端的自动配置类SpringBootAdminClientAutoConfiguration会在初始化时查找容器中的RestTemplate实例。如果存在自定义的RestTemplate Bean,就会直接使用它来与SBA服务端进行通信,从而自动应用你配置的证书忽略逻辑。

注意事项:

  • 这种方式会让这个RestTemplate被整个应用共享,如果你只希望SBA客户端使用它,可以通过@Qualifier指定Bean名称,再在SBA客户端配置中绑定该Bean(不过大部分测试场景下全局共享也没问题)。
  • 绕过证书验证仅建议在测试环境使用,生产环境请配置合法的SSL证书以保证通信安全。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:31:32