El proxy Charles falla en el método de conexión SSL

4 minutos de lectura

avatar de usuario de user1318504
usuario1318504

Tengo Android 4.3 obligado a usar el proxy Charles a través de IPTABLES. El certificado de charles está instalado en el teléfono. Puedo capturar tráfico SSL normal como sitios web https en el navegador. Todos los métodos POST y GET parecen funcionar bien. En una aplicación en particular, falla al usar el método SSL CONNECT.

  • URL: https://XX.XX.XXX.XXX/
  • Estado: fallido
  • Fallo: SSLHandshake: alerta fatal recibida: unknown_ca
  • Código de respuesta: – Protocolo: HTTP/1.0
  • Método: CONECTAR

  • Enfrenté este problema en iOS10. Simplemente apago a Charles cuando inicio sesión con Facebook.

    – Crazyrems

    12 de abril de 2017 a las 8:01


  • Como dice el mensaje de error. La CA no es de confianza. Tiene que ser de confianza para monitorear el tráfico SSL.

    – Durai Amuthan.H

    20 de febrero de 2018 a las 19:19

Avatar de usuario de Tomer Even
tomer incluso

Desde iOS 10.3 también necesitas ir a Configuración > General > Acerca de > Configuración de confianza del certificado y confíe en el certificado de Charles.

ingrese la descripción de la imagen aquí

  • ¡Salvaste mi día!

    – Eli Kohen

    25 de agosto de 2017 a las 16:07

  • ¡Esta es la respuesta correcta!

    – una excavación

    16 de mayo a las 12:13

Avatar de usuario de Berkay Yıldız
Berkay Yıldız

Puede enfrentar este problema en algunas aplicaciones como Facebook o Instagram. El certificado Charles no funciona en algunas aplicaciones nuevas porque utilizan una técnica denominada SSL-PINNING. En primer lugar, debe romper el sistema de fijación de SSL de la aplicación o puede instalar una versión anterior de la aplicación, a veces funciona, pero necesitamos una nueva solución sobre la fijación de SSL para registrar el tráfico para este tipo de aplicaciones.

avatar de usuario de crifan
crifan

como dice @Berkay Yıldız, probablemente esté usando ssl/fijación de certificados.

¿Cómo arreglar/evitar/deshabilitar la fijación SSL?

toda la logica es:

NIVEL 1: por normal http: lógica central:

  • Ordenador personal: Mac/Windows
    • Charles estableció un proxy http
    • establecer puerto
  • uso de la aplicación Charles proxy
    • Wi-Fi interior, establecer
      • dirección IP del anfitrión
      • Puerto

Nota: lado de la computadora, DEBE usar wired network, NO inalámbrico, de lo contrario, la red del lado móvil no se puede utilizar

NIVEL 2: por encrypted https

  • ordenador personal
    • instalar el certificado raíz de Charles
      • Mac: usar Key Chain confiar en Charles Root CA
    • Charles
      • Enable SSL Proxying
        • establezca el filtro de ubicación para su dirección API específica
  • teléfono
    • aplicación
      • instalar Charles Root CA
        • Nota: el tipo debe seleccionar: VPN and Application
          • NO seleccione: WLAN
        • asegúrese de que el certificado se instale correctamente
          • Trusted Credentials -> Userpuede ver el certificado de Charles instalado

NIVEL 3: para ESPECIAL https que usando ssl pinning:


resumen más detallado, consulte mi publicación (escrita en chino): 1 y 2

  • Estoy atascado con la aplicación de Android con fijación SSL, ¿hay alguna imagen arraigada en el emulador de Android que pueda usar?

    – Ish

    27 de mayo de 2021 a las 3:11

  • @Ish puedes probar Nox Playerque apoyan Xposed!Nox jugador Xposed

    – crifan

    27 de mayo de 2021 a las 3:23

avatar de usuario de bsautner
bsautner

Algunas personas terminan aquí con dispositivos Android N que no harán SSL sobre charles incluso después de instalar el certificado, ahora en http://chls.pro/ssl

En N, también debe agregar un archivo xml y una configuración de seguridad. Esta publicación entra en más detalles: ¿Cómo hacer que charles proxy funcione con Android 7 nougat?

Me he encontrado con el mismo problema. Y tras instalar el último certificado, se soluciona.
ingrese la descripción de la imagen aquí

Avatar de usuario de Leo Lei
leo lei

En tu teléfono, visita http://charlesproxy.com/getssl para descargar el certificado. Al descargar el certificado en Android, se le pedirá que instale el certificado, le asigne un nombre y continúe. Ahora debería funcionar.

Nota: El s debe ser similar en un iPhone

avatar de usuario de lejonl
lejonl

Recibí el siguiente error cuando intentaba instalar el certificado en mi Nexus 6p, Android 6.0. (Seguí las instrucciones en charles y descargué el certificado a través de http://chls.pro/ssl.):

No se pudo instalar porque no se pudo leer el archivo del certificado.

La solución a este problema fue instalar a través de:
Settings > Security > Install from storage
Después de navegar hasta el archivo de certificado e instalarlo, todo funcionó como se esperaba.

¿Ha sido útil esta solución?