SSL Proxy / Charles and Android trouble

Quero testar as chamadas dos Https do android usando a ferramenta Charles proxy. Preciso de ver o conteúdo de pedido/resposta raw para a aplicação de depuração. Configurei o Charles adicionando a máquina e a porta em "Configuração do' Proxy '" - > página SSL. Quando dirijo a aplicação, todas as chamadas da SSL parecem desaparecer rapidamente do Charles. Alguém faz ideia de como resolver este problema? A documentação do Charles não parece ter informação para dispositivos Android.

Author: bianca, 2013-07-24

8 answers

Para O Android7

Remete para:: Como fazer o charles proxy trabalhar com o Android 7 nougat?

Para a versão Android abaixo de Android7

A partir do seu computador, execute Charles:

  1. Configuração do 'Proxy': configuração do ' Proxy ->', página Proxies, verifique " activar o proxy HTTP transparente "e lembre-se de" porta " no coração. enter image description here

  2. Configuração do 'Proxy' de SSL: Proxy - > configuração do 'Proxy' de SSL, página de selecção de SSL, verificar " activar o SSL Proxying", and add . para locais: enter image description here enter image description here

  3. Configuração Do Controlo De Acesso Aberto: Proxy - > Configuração Do Controlo De Acesso. Adicione a sua sub-rede local para autorizar máquinas na sua rede local para usar o 'proxy' de outra máquina/móvel. enter image description here

No Telefone Android:

  1. Configure o seu telemóvel: vá a configuração - > redes sem fios - > Wi-Fi - > Ligar ou modificar a sua rede, preencha o endereço IP Informático e Porto(8888): enter image description here

  2. Obter o certificado de Charles SSL. Visite este url do seu navegador móvel: http://charlesproxy.com/getssl enter image description here

  3. Em" nome do certificado", digite o que quiser

  4. Aceite o aviso de segurança e instale o certificado. Se você instalá - lo bem sucedido, então você provavelmente vê sth assim: No seu telemóvel, Configuração - > Segurança - > confiança credencial: enter image description here

Feito. Então pode fazer um teste no seu telemóvel, o pedido encriptado dos https será mostrado no Charles.: enter image description here
 62
Author: User9527, 2017-10-11 06:21:16

Edit-esta resposta foi para uma versão anterior de Charles. Veja a resposta do @ semicirculo21 abaixo para os passos apropriados para v3. 10.x ... muito mais fácil do que esta abordagem também... :-)

Para que conste, Aqui estão as instruções passo a passo para isto. Devem aplicar-se igualmente bem nos oi:
  1. Abre Charles
  2. Ir para o 'Proxy' > configuração do 'Proxy' > SSL
  3. Verificar "activar a Proxying SSL"
  4. seleccione "Adicionar localização" e indique o nome e o porto da máquina (se necessário)
  5. Carregue em ok e certifique-se que a opção está assinalada
  6. descarrega o certificado Charles daqui: Charles cert >
  7. Envia esse ficheiro para ti por e-mail.
  8. Abra o e-mail no seu dispositivo e seleccione o certificado
  9. em "nome o certificado" indique o que quiser
  10. Carregue em OK e deverá receber uma mensagem de que o certificado foi instalado
Então deves poder ver os ficheiros SSL no Charles. Se quiser interceptar e mude os valores que você pode usar a ferramenta" mapear Local " que é realmente incrível:
  1. In Charles go tools > Map Local
  2. seleccione "Adicionar um item"
  3. indique os valores do ficheiro que deseja substituir
  4. em" local path " seleccione o ficheiro que deseja que a aplicação carregue em vez de
  5. Clique em OK
  6. Certifique-se que o item está seleccionado e carregue em OK
  7. executa a tua aplicação
  8. você deve ver em "notas" que o seu arquivo carrega em vez do Vivo
 43
Author: bkurzius, 2015-08-06 18:16:50

Obrigado pela resposta de @bkurzius e esta actualização é para Charles 3.10+. (A razão é aqui)

  1. Abre Charles
  2. Ir para a configuração do 'Proxy' > SSL...
  3. verificar "activar a Proxying SSL"
  4. seleccione "Adicionar a localização" e indique o nome e o porto da máquina (se necessário)
  5. Carregue em ok e certifique-se que a opção está assinalada
  6. Vá ajudar > SSL Proxying > {[[0]}, e apenas siga as instruções. (use o navegador Android para baixar e instalar o certificado.)
  7. em "nome o certificado" indique o que quiser
  8. Carregue em OK e deverá receber uma mensagem de que o certificado foi instalado
 27
Author: semicircle21, 2015-07-29 06:41:53

Veja aqui:

Http://jaanus.com/blog/2012/02/12/debugging-http-on-an-android-phone-or-tablet-with-charles-proxy-for-fun-and-profit/

Precisas de instalar o charles.certificado crt para o seu dispositivo.
 7
Author: otso, 2013-10-30 10:52:25

As respostas de topo estão a funcionar perfeitamente (um pouco antigas, mas ainda estão a funcionar), mas só quero mencionar que, uma vez que o Android N, todos podemos configurar os seus aplicativos de modo a ter certificados de SSL de confiança diff (para lançamento, apenas depuração e assim por diante), incluindo o certificado 'Proxy' de Charles SSL (se baixar o certificado de Charles e colocar .ficheiro pem na sua pasta raw). Mais informações podem ser encontradas aqui: https://developer.android.com/training/articles/security-config.html

Também a a documentação oficial do Charles pode ser útil para configurar isto: https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/

Espero que isto ajude a configurar o Charles dentro do seu projecto app e não em todos os dispositivos Android.
 3
Author: Sniper, 2017-04-28 16:06:50
Eu percebi o problema. É porque Charles 3.7 tem alguns bugs para dispositivos Android. Actualizei-me para a versão beta do Charles 3.8 e parece funcionar bem para mim.
 1
Author: bianca, 2013-07-26 16:17:01

Para o emulador mais recente, poderá ser útil lançar a partir da linha de comandos usando:

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

Certifique-se que segue o conselho de @User9527 acima, bem como para o resto da configuração

 0
Author: AllDayAmazing, 2017-02-22 22:44:07
Para mim, o problema era o endereço IP para onde o charles me estava a dizer para me encaminhar no meu proxy. Para resolver, acabei por ir para ifconfig no terminal e tentar os diferentes endereços IP (listados ao lado de inet) no porto 8888 para as ligações activas actuais
 0
Author: Charlton Provatas, 2017-12-02 21:45:38