Solución:
Para capturar de forma remota el tráfico http o https con charles, deberá hacer lo siguiente:
HOST: máquina que ejecuta Charles y que aloja el proxy CLIENTE: máquina del usuario que genera el tráfico que capturará
Máquina anfitriona
- Instalar la versión de charles con licencia completa
- Proxy -> Configuración de proxy -> marque “Habilitar proxy HTTP transparente”
- Proxy -> Configuración de proxy SSL -> marque “habilitar Proxy SSL”
- Proxy -> Configuración de proxy SSL -> haga clic en el botón Agregar e ingrese * en ambos campos
- Proxy -> Configuración de control de acceso -> Agregue su subred local (por ejemplo: 192.168.2.0/24) para autorizar a todas las máquinas en su red local a usar el proxy desde otra máquina
- Puede ser aconsejable configurar la “herramienta de guardado automático” en charles, esto guardará automáticamente y rotará los registros de charles.
Máquina cliente:
- Instale y acepte / confíe permanentemente en el certificado SSL de Charles
http://www.charlesproxy.com/documentation/using-charles/ssl-certificates/ - Configure IE, Firefox y Chrome para usar el socket en el que Charles aloja el proxy (por ejemplo: 192.168.1.100:8888)
Cuando probé esto, recogí dos líneas de un chat HTTPS de Facebook (una era una línea PARA alguien y la otra DESDE)
También puede capturar el tráfico del emulador de Android de esta manera si inicia el emulador con:
emulator -avd <avd name> -http-proxy http://local_ip:8888/
Donde LOCAL_IP es la dirección IP de su computadora, no 127.0.0.1 ya que es la dirección IP del teléfono emulado.
Fuente: http://brakertech.com/capture-https-traffic-remotely-with-charles/
En Charles, vaya a Proxy >> Configuración de proxy y seleccione la pestaña SSL. Agregue su anfitrión a la lista de ubicaciones.
Por ejemplo, si su llamada segura va a https://secure.example.com, puede ingresar secure.example.com o * .example.com.
Una vez que lo anterior esté en su lugar, es posible que deba hacer clic con el botón derecho en la llamada en la ventana principal de Charles y seleccionar la opción SSL Proxying.
Espero que esto ayude.
Por lo que vale la pena, aquí están las instrucciones paso a paso para hacer esto en un dispositivo Android. Debería ser lo mismo para iOS:
- Charles abierto
- Vaya a Proxy> Configuración de proxy> SSL
- Marque “Habilitar proxy SSL”
- Seleccione “Agregar ubicación” e ingrese el nombre de host y el puerto (si es necesario)
- Haga clic en Aceptar y asegúrese de que la opción esté marcada
- Descargue el certificado Charles desde aquí: Charles cert>
- Envíe ese archivo a sí mismo en un correo electrónico.
- Abra el correo electrónico en su dispositivo y seleccione el certificado
- En “Nombra el certificado” ingresa lo que quieras
- Haga clic en Aceptar y debería recibir un mensaje de que el certificado se instaló
A continuación, debería poder ver los archivos SSL en Charles. Si desea interceptar y cambiar los valores, puede utilizar la herramienta “Mapa local”, que es realmente impresionante:
- En Charles, vaya a Herramientas> Mapa local
- Seleccione “Agregar entrada”
- Ingrese los valores para el archivo que desea reemplazar
- En “Ruta local”, seleccione el archivo que desea que cargue la aplicación.
- Haga clic en Aceptar
- Asegúrese de que la entrada esté seleccionada y haga clic en Aceptar
- Ejecute su aplicación
- Debería ver en “Notas” que su archivo se carga en lugar del que está en vivo.