es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Apache HttpClient 5.1 evasión de verificación SSL.

He configurado CloseableHttpAsyncClient como se menciona a continuación:

public CloseableHttpAsyncClient closeableHttpAsyncClient(){
    HttpAsyncClientBuilder clientBuilder = HttpAsyncClients.custom();
    final PoolingAsyncClientConnectionManager connManager = new PoolingAsyncClientConnectionManager();
    connManager.setMaxTotal(10);
    clientBuilder.setConnectionManager(connManager);

    clientBuilder.setRedirectStrategy(DefaultRedirectStrategy.INSTANCE);
    CloseableHttpAsyncClient closeableHttpAsyncClient = clientBuilder.build();
    return closeableHttpAsyncClient;
}

Quiero evitar la verificación SSL. He intentado verificar diferentes configuraciones pero no he encontrado la solución para lo mismo.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para evitar la verificación de SSL en CloseableHttpAsyncClient, puedes crear un SSLContext personalizado que confíe en todos los certificados y establecerlo en el creador del cliente. Aquí tienes un ejemplo:

    import org.apache.http.ssl.SSLContexts;
    import javax.net.ssl.SSLContext;
    
    public CloseableHttpAsyncClient closeableHttpAsyncClient(){
        HttpAsyncClientBuilder clientBuilder = HttpAsyncClients.custom();
        final PoolingAsyncClientConnectionManager connManager = new PoolingAsyncClientConnectionManager();
        connManager.setMaxTotal(10);
        clientBuilder.setConnectionManager(connManager);
    
        clientBuilder.setRedirectStrategy(DefaultRedirectStrategy.INSTANCE);
    
        SSLContext sslContext = SSLContexts.custom().loadTrustMaterial((chain, authType) -> true).build();
        clientBuilder.setSSLContext(sslContext);
    
        CloseableHttpAsyncClient closeableHttpAsyncClient = clientBuilder.build();
        return closeableHttpAsyncClient;
    }
    

    En este fragmento de código, estamos creando un SSLContext personalizado usando SSLContexts.custom(). Luego cargamos el material de confianza utilizando un administrador de confianza que confía en todos los certificados ((chain, authType) -> true). Establecemos este SSLContext en el creador del cliente usando clientBuilder.setSSLContext(sslContext). Esto evitará la verificación de SSL en el CloseableHttpAsyncClient.

Comments are closed.