Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

Ответ 2

для Android7

относятся к: Как получить прокси-сервер charles с nougat от Android 7?

для Android версии под Android7

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

  • Откройте настройки прокси-сервера: прокси → параметры прокси, вкладка "Прокси", установите флажок "Включить прозрачный HTTP-прокси" и помните "Порт" в сердце. введите описание изображения здесь

  • Настройки прокси-сервера SSL: прокси → параметры SSL-прокси, вкладка SSL-прокси, установите флажок "Включить SSL-проксирование" и добавьте. к местоположениям: введите описание изображения здесь введите описание изображения здесь

  • Параметры контроля открытого доступа: Прокси → Параметры контроля доступа. Добавьте свою локальную подсеть для авторизации компьютеров в вашей локальной сети, чтобы использовать прокси-сервер с другого компьютера/мобильного устройства. введите описание изображения здесь

В Android-телефоне:

  • Настройте свой мобильный телефон: перейдите в Настройки → Беспроводная связь и сети → WiFi → Подключите или измените свою сеть, заполните IP-адрес компьютера и порт (8888): введите описание изображения здесь

  • Получить сертификат SSL. Посетите этот URL из своего мобильного браузера: http://charlesproxy.com/getssl введите описание изображения здесь

  • В поле "Имя сертификата" введите все, что хотите.

  • Принять предупреждение о безопасности и установить сертификат. Если вы установите его успешно, то вы, вероятно, увидите sth: В телефоне Настройки → Безопасность → Доверенные учетные данные: введите описание изображения здесь

Готово.

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

Ответ 3

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

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

  • Открыть Чарльз
  • Перейти к прокси > Настройки прокси > SSL
  • Установите флажок "Включить SSL-проксирование"
  • Выберите "Добавить местоположение" и введите имя хоста и порт (если необходимо)
  • Нажмите "ОК" и убедитесь, что опция отмечена.
  • Загрузить сертификат Charles здесь: Charles cert >
  • Отправьте этот файл себе по электронной почте.
  • Откройте электронное письмо на своем устройстве и выберите сертификат
  • В поле "Имя сертификата" введите все, что хотите.
  • Нажмите "ОК" и вы получите сообщение о том, что сертификат был установлен

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

  • В Charles пойдите в Инструменты > Карта Локальный
  • Выберите "Добавить запись"
  • Введите значения для файла, который вы хотите заменить
  • В "Локальном пути" выберите файл, который вы хотите, чтобы приложение загружалось.
  • Нажмите "ОК"
  • Убедитесь, что запись выбрана и нажмите OK
  • Запустите приложение
  • В "Заметках" вы должны увидеть, что ваш файл загружается вместо живого.

Ответ 4

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

  • Открыть Чарльз
  • Перейти к прокси > Настройки прокси-сервера SSL...
  • Установите флажок "Включить SSL-проксирование"
  • Выберите "Добавить местоположение" и введите имя хоста и порт (если необходимо)
  • Нажмите "ОК" и убедитесь, что опция отмечена.
  • Перейдите в раздел Справкa > Прокси SSL > Install Charles Root Certificate on a Mobile Device or Remote Browser... и просто следуйте инструкциям. (используйте браузер Android для загрузки и установки сертификата.)
  • В поле "Имя сертификата" введите все, что хотите.
  • Нажмите "ОК" и вы получите сообщение о том, что сертификат был установлен

Ответ 6

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

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

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

Ответ 7

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

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

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

Ответ 8

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