proxying not locations funciona for enabled enable emulator debug android proxy charles

not - debugging proxy android



Problema de SSL Proxy/Charles y Android (8)

para Android7

consulte: ¿Cómo lograr que el proxy de charles funcione con el turrón de Android 7?

para la versión de Android debajo de Android7

Desde tu computadora, ejecuta Charles :

  1. Abra Proxy Settings: Proxy -> Proxy Settings, Proxies Tab, active "Enable HTTP proxying" y recuerde "Port" en heart.

  2. Configuración de Proxy SSL: Proxy -> Configuración de Proxy SSL, pestaña Proxying SSL, Marque "habilitar SSL Proxying" y agregue . a Ubicaciones:

  3. Configuración de control de acceso abierto: Proxy -> Configuración de control de acceso. Agregue su subred local para autorizar máquinas en su red local para usar el proxy de otra máquina / dispositivo móvil.

En Android Phone :

  1. Configure su móvil: Vaya a Configuración -> Conexiones inalámbricas y redes -> WiFi -> Conecte o modifique su red, complete la dirección IP y el puerto de la computadora (8888):

  2. Obtenga el certificado Charles SSL. Visite esta url desde su navegador móvil: http://charlesproxy.com/getssl

  3. En "Nombre del certificado" ingresa lo que quieras

  4. Acepte la advertencia de seguridad e instale el certificado. Si lo instala con éxito, entonces probablemente vea algo así: en su teléfono, Configuración -> Seguridad -> Credenciales de confianza:

Hecho.

entonces puedes tener alguna prueba en tu móvil, la solicitud de https encriptada se mostrará en Charles:

Quiero probar llamadas Https desde un dispositivo Android usando la herramienta proxy de Charles. Necesito ver los contenidos de solicitud / respuesta sin procesar para la aplicación de depuración. Configuré Charles agregando el host y el puerto en "Configuración de Proxy" -> pestaña SSL. Cuando ejecuto la aplicación, todas las llamadas SSL parecen desaparecer rápidamente de Charles. ¿Alguien tiene alguna idea de cómo solucionar este problema? La documentación de Charles no parece tener información para dispositivos Android.


Editar - esta respuesta fue para una versión anterior de Charles. Consulte @ semicircle21 a continuación para obtener los pasos adecuados para v3.10.x, mucho más fácil que este enfoque también ... :-)

Por lo que vale aquí son las instrucciones paso a paso para esto. También deberían aplicarse igualmente en iOS:

  1. Charles abierto
  2. Vaya a Proxy> Configuración de Proxy> SSL
  3. Marque "Habilitar proxies SSL"
  4. Seleccione "Agregar ubicación" e ingrese el nombre de host y el puerto (si es necesario)
  5. Haga clic en Aceptar y asegúrese de que la opción esté marcada
  6. Descargue el certificado de Charles de aquí: Charles cert>
  7. Envíele ese archivo en un correo electrónico.
  8. Abra el correo electrónico en su dispositivo y seleccione el certificado
  9. En "Nombre del certificado" ingresa lo que quieras
  10. Haga clic en Aceptar y debería recibir un mensaje que indique que se instaló el certificado

Debería poder ver los archivos SSL en Charles. Si quiere interceptar y cambiar los valores, puede usar la herramienta "Localizar mapa" que es realmente impresionante:

  1. En Charles vaya a Herramientas> Mapa Local
  2. Seleccione "Agregar entrada"
  3. Ingrese los valores para el archivo que desea reemplazar
  4. En "Ruta local", seleccione el archivo que desea que cargue la aplicación en su lugar
  5. Haga clic en Aceptar
  6. Asegúrese de que la entrada esté seleccionada y haga clic en Aceptar
  7. Ejecuta tu aplicación
  8. Debería ver en "Notas" que su archivo carga en lugar del vivo

Gracias por la respuesta de @ bkurzius y esta actualización es para Charles 3.10+. (El motivo está here )

  1. Charles abierto
  2. Vaya a Proxy> Configuración de Proxy SSL ...
  3. Marque "Habilitar proxies SSL"
  4. Seleccione "Agregar ubicación" e ingrese el nombre de host y el puerto (si es necesario)
  5. Haga clic en Aceptar y asegúrese de que la opción esté marcada
  6. Vaya a Ayuda> Proxies SSL> Install Charles Root Certificate on a Mobile Device or Remote Browser... y simplemente siga las instrucciones. (use el navegador de Android para descargar e instalar el certificado).
  7. En "Nombre del certificado" ingresa lo que quieras
  8. Haga clic en Aceptar y debería recibir un mensaje que indique que se instaló el certificado

Las mejores respuestas están funcionando perfectamente (un poco viejas pero aún funcionan), pero solo quiero mencionar que desde Android N todos podemos configurar tus aplicaciones para tener certificados SSL de confianza (para versiones, solo para depuración, etc.) , incluido el certificado Charles SSL Proxy (si descarga el certificado Charles y coloca el archivo .pem en su carpeta sin formato). Puede encontrar más información aquí: https://developer.android.com/training/articles/security-config.html

También la documentación oficial de Charles puede ser útil para configurar esto: https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/

Espero que esto ayude a configurar a Charles dentro de su proyecto de aplicación, no en todos los dispositivos Android.


Me imaginé el problema. Es porque Charles 3.7 tiene algunos errores para los dispositivos Android. Actualicé a la versión Charles 3.8 Beta y parece funcionar bien para mí.



Para el emulador más nuevo, puede ser útil lanzar desde la línea de comandos usando:

emulator -netdelay none -netspeed full -avd <emulator_name> -http-proxy http://<ip-address>:8888

Asegúrate de seguir los consejos de @ User9527 arriba también para el resto de la configuración


Para mí, el problema era que la dirección IP a la que Charles me decía que debía encaminar mi configuración de proxy era incorrecta. Para resolver, terminé yendo a ifconfig en el terminal y probando las diferentes direcciones IP (enumeradas al lado de inet ) en el puerto 8888 para las conexiones activas actuales