Como ignorar um certificado ssl auto-assinado utilizando jersey client? Estou tentando consumir um serviço https e é retornado timeout.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Como ignorar um certificado ssl auto-assinado utilizando jersey client? Estou tentando consumir um serviço https e é retornado timeout.
Luan, não sou especialista no assunto mas acredito que este código pode ti ajudar:
// Create a trust manager that does not validate certificate chains
TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager(){
public X509Certificate[] getAcceptedIssuers(){return null;}
public void checkClientTrusted(X509Certificate[] certs, String authType){}
public void checkServerTrusted(X509Certificate[] certs, String authType){}
}};
// Install the all-trusting trust manager
try {
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null, trustAllCerts, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (Exception e) {
;
}
Opa amigo Mario, estou fazendo dessa forma, mas sem sucesso, retorna 404. Não é o serviço porque chamo pelo postman e funciona.
Mario, consegui encontrar o problema, era URL mal formada, pois continha parâmetros diretamente no path como "/?" e "&". Passei a usar o .queryParam(String arg0, Object... arg1 ) e funcionou. Era até lógico, porque se o servidor retornava 404 é porque conseguia chegar lá.
conteudo = target.path("api/v1/consultas")
.queryParam("de", "2017-06-01")
.queryParam("ate", "2017-06-30")
.request()
.get(Consultas.class);
A solução que você e eu encontramos atende o tópico deste fórum, mas o problema era com a URL.
Obrigado pela atenção.