SSL Прокси / Чарльз и Android проблемы
Я хочу проверить Https-вызовы с устройства android с помощью Charles proxy tool. Мне нужно увидеть содержимое raw-запроса / ответа для отладки приложения. Я настроил Charles, добавив хост и порт в разделе "Настройки прокси" -> вкладка SSL. Когда я запускаю приложение, все вызовы SSL, кажется, быстро исчезают из Чарльза. Есть ли у кого-нибудь идеи, как исправить эту проблему. В документации Charles, похоже, нет информации для устройств Android.
8 ответов:
для Android7
см.: как заставить charles proxy работать с Android 7 nougat?
для Android версии ниже Android7
С Вашего компьютера, запустите Charles:
откройте Настройки прокси: Прокси - > Настройки прокси, вкладка Прокси, установите флажок "Включить прозрачное HTTP-прокси" и запомните "порт" в сердце.
Прокси SSL Настройки:прокси -> прокси-сервера SSL параметры, вкладка SSL-Прокси, Проверьте "включить SSL прокси", и добавить . в местах:
Открыть Настройки Управления Доступом: Прокси - > Настройки Управления Доступом. Добавьте локальную подсеть для авторизации компьютеров в локальной сети для использования прокси-сервера с другого компьютера / мобильного устройства.
В Android Телефон:
настройка мобильного телефона: перейдите в раздел Настройки - > Беспроводные сети - > WiFi - > подключение или изменение сети, заполните IP-адрес компьютера и порт(8888):
получить сертификат Чарльза SSL. Посетите этот url-адрес из вашего мобильного браузера: http://charlesproxy.com/getssl
в поле "Имя сертификата" введите все, что вы хочу!--5-->
примите предупреждение системы безопасности и установите сертификат. Если вы установите его успешно, то вы, вероятно, увидите sth так: В телефоне Настройки - > Безопасность - > доверенные учетные данные:
сделано.
затем вы можете провести тест на своем мобильном телефоне, зашифрованный запрос https будет показан в Charles:
Edit-этот ответ был для более ранней версии Charles. См. @semicircle21 ответ ниже для правильных шагов для v3.10.x-гораздо проще, чем этот подход тоже... : -)
для чего это стоит вот пошаговые инструкции для этого. Они должны одинаково хорошо применяться и в iOS:
- Открыть Чарльз
- перейти к прокси > Настройки прокси > SSL
- Проверьте "включить SSL проксирование"
- выберите "Добавить местоположение" и введите имя хоста имя и порт (при необходимости)
- Нажмите кнопку ОК и убедитесь, что параметр
- загрузите сертификат Чарльза отсюда: Charles cert>
- отправить файл себе по электронной почте.
- откройте электронную почту на вашем устройстве и выберите сертификат
- в поле "Имя сертификата" введите все, что вы хотите
- Нажмите кнопку ОК, и вы должны получить сообщение, что сертификат был установлен
вы должны быть возможность видеть файлы SSL в Charles. Если вы хотите перехватить и изменить значения, вы можете использовать инструмент "Map Local", который действительно потрясающий:
- в Charles перейдите в сервис > Map Local
- выбрать "Добавить запись"
- введите значения для файла, который вы хотите заменить
- в разделе "локальный путь" выберите файл, который вы хотите загрузить приложение вместо
- Нажмите кнопку ОК
- убедитесь, что запись выбрана, и нажмите кнопку OK
- выполнить ваши приложение
- вы должны увидеть в "Заметках", что ваш файл загружается вместо живого
Спасибо за ответ @bkurzius и это обновление для Чарльза 3.10+. (Причина в здесь)
- Открыть Чарльз
- перейдите в раздел Прокси > настройки прокси SSL...
- Проверьте "включить SSL проксирование"
- выберите "Добавить местоположение" и введите имя хоста и порт (если требуется)
- Нажмите кнопку ОК и убедитесь, что параметр
- перейти в справку > SSL Proxying >
Install Charles Root Certificate on a Mobile Device or Remote Browser...
и просто следуйте инструкциям. (используйте Браузер Android для загрузки и установки сертификата.)- в поле "Имя сертификата" введите все, что вы хотите
- Нажмите кнопку ОК, и вы должны получить сообщение, что сертификат был установлен
лучшие ответы работают идеально (немного старые, но все еще работают), но я просто хочу упомянуть, что с 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
для текущих активных соединений