14 votos

¿Cómo puedo generar un certificado PKCS12 CA para utilizarlo con Packet Capture?

Estaba tratando de usar Captura de paquetes para averiguar algunas URLs utilizadas por una aplicación. Packet Capture permite capturar paquetes SSL instalando una puerta de enlace VPN con su propio certificado de CA root y canalizando las solicitudes de las aplicaciones a través de esa puerta de enlace. Sin embargo, cuando intento generar el certificado desde la app (en mi Galaxy Note 8), sólo me aparece el error "Cannot create certificate". No sé a qué se debe esto, ya que la app no da más explicaciones, pero esto significa que no puedo usar la captura SSL en la app.

La aplicación tiene otra forma de importar simplemente un certificado de CA existente, conocida como "Importar archivo PKCS#12". Sin embargo, tengo que generar el archivo PKCS#12 yo mismo para utilizarlo, y no estoy seguro de cómo hacerlo.

Lo que he hecho hasta ahora: He instalado la aplicación " Dory ". Luego intenté crear un par de claves públicas/privadas, una CSR y un certificado de CA root, estableciendo siempre la frase de contraseña y el alias como "abc". Pero cuando traté de importar el archivo p12 a Packet Capture, sólo dijo "java.lang.RuntimeException: No se puede cargar la clave. La clave puede ser incorrecta". Debo haber hecho algo mal; ¿qué debo hacer a continuación?

2 votos

No encontré ninguna solución a esto directamente (no encontré ninguna manera de generar un certificado para su uso con Packet Capture), pero en caso de que otros tengan la misma pregunta, cambié de Packet Capture a una aplicación llamada HttpCanary, que no tiene el mismo problema con la generación de certificados directamente dentro de la aplicación. Proporciona características similares a Packet Capture y funciona bien para mí.

11voto

Jared Kozak Puntos 56

Tuve algunos problemas con esto después de la actualización de Android 11. Android 11 ya no permite añadir certificados desde ninguna aplicación que no sea la de ajustes, así que tendrás que generar y establecer el certificado tú mismo.

  1. Generar el certificado en linux. También puedes hacerlo en el dispositivo si consigues una aplicación openssl o un terminal. Yo seguí este tutorial , excepto que añadí el nombre "alias" a la clave p12:

openssl req -x509 -newkey rsa:4096 -keyout myKey.pem -out cert.pem -days 365 -nodes

Pulsa enter para todas las indicaciones

openssl pkcs12 -export -out keyStore.p12 -inkey myKey.pem -in cert.pem -name "alias"

Introduce la contraseña "test"

  1. Transferencia keyStore.p12 y cert.pem al dispositivo Android

  2. En los ajustes de Android, ve a Biometría y Seguridad (ten en cuenta que tengo un dispositivo Samsung, puede que sea diferente para ti) > Otros ajustes de seguridad > Almacenamiento de credenciales > Instalar desde el almacenamiento del dispositivo > Certificado CA > Acepta la aterradora advertencia roja y toca "Instalar de todos modos" > introduce tu pincode > busca "cert.pem" y pulsa "Hecho"

  3. Volviendo a "Instalar desde el almacenamiento del dispositivo", > VPN y certificado de usuario de la aplicación > encontrar keyStore.p12 > Introducir la contraseña "test" y nombrarla "alias"

  4. Vaya a la pantalla de información de la aplicación Packet Capture > Permisos > Archivos y medios > Habilite "Permitir la gestión de todos los archivos"

  5. Abra la captura de paquetes > Configuración > Pulse "Sin certificado CA" > Importar archivo PKCS#12 > busque keyStore.p12. Introduzca la contraseña "test" y el "alias". Reinicie la captura de paquetes. Si todo ha funcionado, el subtítulo "Estado" debería decir "Instalado en credenciales de confianza"

  6. Reiniciar el dispositivo

SSL debería funcionar para la mayoría de las aplicaciones ahora, pero puede ser un éxito y un error

0 votos

Yo estaba en Android 9 no 11, pero voy a aceptar su respuesta, ya que da un procedimiento para generar el cert. Yo estaba dispuesto a hacer esto por completo dentro de Android y sin necesidad de utilizar un PC, pero tal vez eso era demasiado ambicioso. De todos modos ya no estoy usando Packet Capture ya que cambié a HttpCanary.

1 votos

Parece que se puede hacer esto dentro de Android. He conseguido que los comandos anteriores se ejecuten en Termux

1 votos

En el paso 3, cert.pem está en gris para mí...

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X