Saltar al contenido

Cómo hacer una llamada HTTPS GET con certificado en Rest-Assured java

Verificamos de forma completamente cada tutoriales de nuestra página web con la meta de enseñarte en todo momento la información con la mayor veracidad y certera.

Solución:

En mi caso, el uso de “validación HTTPs relajada” solucionó mi problema:

given().relaxedHTTPSValidation().when().post("https://my_server.com")

Lo tengo funcionando con el siguiente código:

KeyStore keyStore = null;
SSLConfig config = null;

try 
        keyStore = KeyStore.getInstance("PKCS12");
        keyStore.load(
                new FileInputStream("certs/client_cert_and_private.p12"),
                password.toCharArray());

     catch (Exception ex) 
        System.out.println("Error while loading keystore >>>>>>>>>");
        ex.printStackTrace();
    

    if (keyStore != null) {

        org.apache.http.conn.ssl.SSLSocketFactory clientAuthFactory = new org.apache.http.conn.ssl.SSLSocketFactory(keyStore, password);

        // set the config in rest assured
        config = new SSLConfig().with().sslSocketFactory(clientAuthFactory).and().allowAllHostnames();

RestAssured.config = RestAssured.config().sslConfig(config);
RestAssured.given().when().get("/path").then();

Soy nuevo en estar tranquilo, pero conozco este tipo de problemas al usar certificados digitales para la autenticación de clientes.

En el documento tranquilo, solo hay una opción para configurar el certificado: JKS

RestAssured.config = RestAssured.newConfig().sslConfig(new SSLConfig("/truststore_javanet.jks", "test1234");

Convierta su PEM a JKS. Ábralo con portecle y asegúrese de que la contraseña sea correcta y tenga el certificado cargado y toda la cadena de certificación a la CA raíz. Portecle simplifica la línea de comandos usando una GUI y también le permite crear el JKS

http://portecle.sourceforge.net/

Este error ocurre SIEMPRE cuando su cliente java no confía en el certificado del servidor

 PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

La forma más fácil de solucionar esto es incluir la cadena de certificados del servidor en su almacén de claves jdk.

Primero, descargue los certificados del servidor abriendo una conexión https con su navegador, por ejemplo con Chrome. No importa que falle. Haga clic en el candado verde en la barra de herramientas>Detalle>Ver certificado de servidor y descargar como PEM. Lo mejor es descargarlo usted mismo para asegurarse de que está utilizando el correcto. Descargar todos los certificados de la cadena de certificación
ingrese la descripción de la imagen aquí

Luego, abra jdk cacerts en JDK_HOME/jre/lib/security con portecle. La contraseña será ‘cambiarlo’. Agregue los certificados del servidor como ‘de confianza’

Ahora, la creación de ruta PKIX fallida desaparecerá. De lo contrario, verifique los certificados y el JDK que está utilizando

Si te apasiona la informática, eres capaz de dejar un ensayo acerca de qué te ha parecido este enunciado.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *