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)

浙公网安备 33010602011771号