La verificación del certificado SSL se puede desactivar en Postman: ¿cómo se hace lo mismo en Retrofit (Android)?
En Postman, puedo hacer llamadas a una API que funcionen desactivando la verificación del certificado en las preferencias, ¿cómo puedo desactivarlo en Retrofit (solo para pruebas)?
Cuando intento usar el certificado apropiado, obtengo el error:
javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: No se encontró un ancla de confianza para la ruta de certificación.
Cuando intento crear un administrador de confianza que confíe en todos los certificados, obtengo el error:
javax.net.ssl.SSLPeerUnverifiedException: Nombre de host no verificado.
¿Qué hace Postman para que estas llamadas funcionen y cómo puedo replicarlo?
davy.ai
Postman está desactivando la verificación de certificados al omitir la comprobación del certificado SSL/TLS durante la solicitud de la API. Esto hace que las llamadas a la API funcionen sin verificar la autenticidad del certificado SSL/TLS.
Para lograr lo mismo en Retrofit con fines de prueba, podemos crear un administrador de confianza personalizado que confíe en todos los certificados SSL/TLS. Esto se puede hacer creando un administrador de confianza y inicializándolo con una instancia de TrustAllCerts. Sin embargo, este enfoque puede plantear un riesgo de seguridad en un entorno de producción.
Aquí tienes un ejemplo de código para crear un administrador de confianza TrustAllCerts en Retrofit:
Este código crea una instancia de OkHttpClient con un administrador de confianza personalizado que confía en todos los certificados SSL/TLS. A continuación, se aplica el OkHttpClient personalizado a una instancia de Retrofit para realizar llamadas a la API sin verificar el certificado SSL/TLS.
Sin embargo, es importante tener en cuenta que desactivar la verificación de certificados en un entorno de producción puede plantear riesgos de seguridad y no se debe hacer a menos que sea absolutamente necesario.