SSL Прокси / Чарльз и Android проблемы


Я хочу проверить Https-вызовы с устройства android с помощью Charles proxy tool. Мне нужно увидеть содержимое raw-запроса / ответа для отладки приложения. Я настроил Charles, добавив хост и порт в разделе "Настройки прокси" -> вкладка SSL. Когда я запускаю приложение, все вызовы SSL, кажется, быстро исчезают из Чарльза. Есть ли у кого-нибудь идеи, как исправить эту проблему. В документации Charles, похоже, нет информации для устройств Android.

8 55

8 ответов:

для Android7

см.: как заставить charles proxy работать с Android 7 nougat?

для Android версии ниже Android7

С Вашего компьютера, запустите Charles:

  1. откройте Настройки прокси: Прокси - > Настройки прокси, вкладка Прокси, установите флажок "Включить прозрачное HTTP-прокси" и запомните "порт" в сердце. enter image description here

  2. Прокси SSL Настройки:прокси -> прокси-сервера SSL параметры, вкладка SSL-Прокси, Проверьте "включить SSL прокси", и добавить . в местах: enter image description here enter image description here

  3. Открыть Настройки Управления Доступом: Прокси - > Настройки Управления Доступом. Добавьте локальную подсеть для авторизации компьютеров в локальной сети для использования прокси-сервера с другого компьютера / мобильного устройства. enter image description here

В Android Телефон:

  1. настройка мобильного телефона: перейдите в раздел Настройки - > Беспроводные сети - > WiFi - > подключение или изменение сети, заполните IP-адрес компьютера и порт(8888): enter image description here

  2. получить сертификат Чарльза SSL. Посетите этот url-адрес из вашего мобильного браузера: http://charlesproxy.com/getssl enter image description here

  3. в поле "Имя сертификата" введите все, что вы хочу!--5-->

  4. примите предупреждение системы безопасности и установите сертификат. Если вы установите его успешно, то вы, вероятно, увидите sth так: В телефоне Настройки - > Безопасность - > доверенные учетные данные: enter image description here

сделано.

затем вы можете провести тест на своем мобильном телефоне, зашифрованный запрос https будет показан в Charles: enter image description here

Edit-этот ответ был для более ранней версии Charles. См. @semicircle21 ответ ниже для правильных шагов для v3.10.x-гораздо проще, чем этот подход тоже... : -)

для чего это стоит вот пошаговые инструкции для этого. Они должны одинаково хорошо применяться и в iOS:

  1. Открыть Чарльз
  2. перейти к прокси > Настройки прокси > SSL
  3. Проверьте "включить SSL проксирование"
  4. выберите "Добавить местоположение" и введите имя хоста имя и порт (при необходимости)
  5. Нажмите кнопку ОК и убедитесь, что параметр
  6. загрузите сертификат Чарльза отсюда: Charles cert>
  7. отправить файл себе по электронной почте.
  8. откройте электронную почту на вашем устройстве и выберите сертификат
  9. в поле "Имя сертификата" введите все, что вы хотите
  10. Нажмите кнопку ОК, и вы должны получить сообщение, что сертификат был установлен

вы должны быть возможность видеть файлы SSL в Charles. Если вы хотите перехватить и изменить значения, вы можете использовать инструмент "Map Local", который действительно потрясающий:

  1. в Charles перейдите в сервис > Map Local
  2. выбрать "Добавить запись"
  3. введите значения для файла, который вы хотите заменить
  4. в разделе "локальный путь" выберите файл, который вы хотите загрузить приложение вместо
  5. Нажмите кнопку ОК
  6. убедитесь, что запись выбрана, и нажмите кнопку OK
  7. выполнить ваши приложение
  8. вы должны увидеть в "Заметках", что ваш файл загружается вместо живого

Спасибо за ответ @bkurzius и это обновление для Чарльза 3.10+. (Причина в здесь)

  1. Открыть Чарльз
  2. перейдите в раздел Прокси > настройки прокси SSL...
  3. Проверьте "включить SSL проксирование"
  4. выберите "Добавить местоположение" и введите имя хоста и порт (если требуется)
  5. Нажмите кнопку ОК и убедитесь, что параметр
  6. перейти в справку > SSL Proxying > Install Charles Root Certificate on a Mobile Device or Remote Browser... и просто следуйте инструкциям. (используйте Браузер Android для загрузки и установки сертификата.)
  7. в поле "Имя сертификата" введите все, что вы хотите
  8. Нажмите кнопку ОК, и вы должны получить сообщение, что сертификат был установлен

смотрите здесь:

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

вам нужно будет установить Чарльз.сертификат crt для вашего устройства.

лучшие ответы работают идеально (немного старые, но все еще работают), но я просто хочу упомянуть, что с Android N мы все можем настроить ваши приложения, чтобы иметь сертификаты SSL diff trust (для выпуска, отладки и т. д.), включая сертификат прокси-сервера Charles SSL (если вы загрузите сертификат Charles и поставите .PEM-файл в папке raw). Более подробную информацию можно найти здесь: https://developer.android.com/training/articles/security-config.html

также официальная документация Charles может быть полезна для настройки этого : https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/

надеюсь, что это поможет настроить Чарльз внутри вашего проекта приложения не на каждом устройстве Android.

Я понял вопрос. Потому что Чарльз 3.7 имеет некоторые ошибки для устройств Android. Я обновился до бета-версии Charles 3.8 и, похоже, отлично работает для меня.

для нового эмулятора может быть полезно запустить из командной строки с помощью:

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

убедитесь, что вы следуете совету @User9527 выше, а также для остальной части установки

для меня проблема заключалась в том, что IP-адрес, который Чарльз говорил мне направить в Мои настройки прокси, был неправильным. Чтобы решить, я в конечном итоге собираюсь ifconfig в терминале и пытается использовать разные IP-адреса (перечислены рядом с inet) в порт 8888 для текущих активных соединений