Como ignorar um certificado ssl auto-assinado utilizando jersey client? Estou tentando consumir um serviço https e é retornado timeout.
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.