FeignClient提示No subject alternative DNS name matching配置SSL

feignClient如果请求的是https域名地址,jvm信任库未添加证书的话可能会提示证书主机名不匹配问题
添加以下配置可忽略

@Slf4j
public class FeignSSLTrustAllConfig {

    @Bean
    public Client feignClient() {
        return new Client.Default(getSSLSocketFactory(), new NoopHostnameVerifier());
    }

    private SSLSocketFactory getSSLSocketFactory() {
        try {
            SSLContext sslContext = SSLContexts.custom().useTLS().build();
            sslContext.init(null, new TrustManager[]{new X509TrustManager() {

                @Override
                public X509Certificate[] getAcceptedIssuers() {
                    return null;
                }

                @Override
                public void checkClientTrusted(X509Certificate[] certs, String authType) {
                }

                @Override
                public void checkServerTrusted(X509Certificate[] certs, String authType) {
                }

            }}, null);
            return sslContext.getSocketFactory();
        } catch (Exception e) {
            log.error("FeignSSLTrustAllConfig getSSLSocketFactory error: {}", e.getMessage());
            throw new RuntimeException(e);
        }
    }
}

然后在需要忽略的FeignClient上添加配置

@FeignClient(name = "xxx", url = "xxx",  configuration = FeignSSLTrustAllConfig.class)

posted @ 2025-09-25 11:28  木马不是马  阅读(36)  评论(0)    收藏  举报