Я хочу протестировать вызовы Https с устройства Android с помощью инструмента прокси Charles. Мне нужно увидеть исходное содержимое запроса/ответа для отладки приложения. Я настроил Чарльза, добавив хост и порт в разделе "Настройки прокси" → вкладка SSL. Когда я запускаю приложение, все вызовы SSL, похоже, быстро исчезают из Чарльза. Кто-нибудь знает, как решить эту проблему. Документация Charles, похоже, не содержит информации для устройств Android.
Прокси SSL/Чарльз и проблемы с Android
Ответ 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 для загрузки и установки сертификата.) - В поле "Имя сертификата" введите все, что хотите.
- Нажмите "ОК" и вы получите сообщение о том, что сертификат был установлен
Ответ 5
Смотрите здесь:
Вам нужно будет установить сертификат charles.crt на ваше устройство.
Ответ 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
для текущих активных подключений