E aí, Matheus! Beleza?
Quando você tá usando o Insomnia, é fácil, né? Só joga o arquivo .pfx lá e tudo funciona. No Spring Boot, com o FeignClient, precisa de alguns passos a mais.
Primeiro, confirma se tá importando certinho o certificado no projeto. O arquivo .pfx deve estar no lugar certo. No Spring Boot, pode ser uma pasta chamada "resources".
Depois, no código, quando tá configurando o FeignClient, tem que adicionar a lógica pra lidar com o certificado. Usa a classe RestTemplate
, que o Feign usa por baixo dos panos. Algo assim:
RestTemplate restTemplate = new RestTemplate();
KeyStore keyStore = KeyStore.getInstance("PKCS12");
InputStream keyStoreStream = new ClassPathResource("seucertificado.pfx").getInputStream();
keyStore.load(keyStoreStream, "suasenha".toCharArray());
CloseableHttpClient httpClient = HttpClients.custom()
.setSSLContext(SSLContexts.custom()
.loadKeyMaterial(keyStore, "suasenha".toCharArray())
.build())
.build();
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);
restTemplate.setRequestFactory(requestFactory);
Lembrando de adaptar os nomes e senhas, claro.
Ah, e não esquece de adicionar a dependência do Apache HttpClient no seu projeto.