fondo
Al usar software de captura de paquetes (tomando Charles como ejemplo) para capturar la solicitud https de la APP, tanto Android como Charles han instalado correctamente el certificado, pero la captura falla y se reporta un error:
Fallo en el handshake SSL del cliente: Ocurrió un problema desconocido al procesar el certificado (certificate_unknown)
Causa
Después de Android7.0, el certificado de CA añadido al sistema por defecto no es de fiar:
Para ofrecer una experiencia más coherente y segura en todo el ecosistema Android, empezando por Android Nougat, los dispositivos compatibles solo confían en las CAs estandarizadas del sistema mantenidas en AOSP .
Enlace de documentación:https://android-developers.googl ... ed-certificate.html
Esto significa que para aplicaciones basadas en SDK24 o superiores, incluso si tienes instalado un certificado de la herramienta de captura de paquetes en tu teléfono, no podrás capturar solicitudes https.
solución
1. Solución oficial (se requiere modificación del código)
Documentación oficial:https://developer.android.google ... ecurity-config.html Demostración detallada:https://blog.csdn.net/mrxiagc/article/details/75329629
2. Instalar el certificado del software de captura de paquetes como certificado del sistema (se requiere ROOT)
Directorio de certificados del sistema: /system/etc/security/cacerts/
La convención de denominación para cada certificado es la siguiente:
<Certificate_Hash>. <Number> El nombre del archivo es un valor hash, mientras que el sufijo es un número.
El nombre del archivo puede calcularse con el siguiente comando:
Por ejemplo, si el valor hash calculado por dos certificados es el mismo, entonces el número de sufijo de un certificado puede fijarse en 0, y el número de sufijo del otro certificado en 1
Pasos:
Utiliza el comando anterior para calcular el valor hash del certificado del software de captura de paquetes, renombrarlo y copiarlo al directorio de certificados del sistema
En este momento, deberías poder ver tu certificado recién añadido en la pestaña del Sistema de Configuración - Seguridad > - > Cifrado y Credenciales - > Credenciales de confianza
|