Intereting Posts
Вверх Навигация (стрелка назад) не работает для фрагментов Перехват намерения ACTION_CALL в отношении HTC Android-тестирование смс с эмулятора Android: мгновенно запустите действие, а затем загрузите контент Фрагмент onCreateView и onActivityCreated вызывается дважды Недействительный 1 пользовательский вид вызывает все пользовательские представления в группе просмотра, которая будет признана недействительной? Закрыть уведомление об андроиде Как сообщить ссылку, чтобы не подчеркивать ссылки? Android поворачивает TextView в API Level> = 8 Композитные операции в Android Canvas Временное всплывающее окно в Android Java.lang.IllegalArgumentException: может использовать только младшие 16 бит для requestCode Java.io.NotSerializableException при записи объекта Serializable во внешнее хранилище? Обновление пользовательского интерфейса при работе на фоне Android: сбой теста: сбой инструментария из-за «java.lang.IncompatibleClassChangeError»

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

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

Solutions Collecting From Web of "Прокси SSL / Чарльз и проблемы с Android"

Для Android7

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

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

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

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

  2. Настройки прокси SSL: Прокси -> Параметры SSL-прокси, вкладка SSL-прокси, Установите флажок «Включить SSL-проксирование» и добавьте . К местоположениям: Введите описание изображения здесь Введите описание изображения здесь

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

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

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

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

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

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

Готово.

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

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

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

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

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

  1. В Чарльзе перейдите в Инструменты> Карта Местные
  2. Выберите «Добавить запись»
  3. Введите значения для файла, который вы хотите заменить
  4. В «Локальном пути» выберите файл, который вы хотите, чтобы приложение загружалось
  5. Нажмите ОК.
  6. Убедитесь, что запись выбрана и нажмите «ОК».
  7. Запустите приложение
  8. Вы должны увидеть в «Заметках», что ваш файл загружается вместо живого

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

  1. Открыть Чарльз
  2. Перейдите в раздел Прокси-сервер> Настройки прокси-сервера SSL …
  3. Установите флажок «Включить SSL-проксирование»
  4. Выберите «Добавить местоположение» и введите имя хоста и порт (если необходимо)
  5. Нажмите «ОК» и убедитесь, что опция отмечена
  6. Перейдите в раздел «Справка»> «Прокси SSL»> « Install Charles Root Certificate on a Mobile Device or Remote Browser... Rolex 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/

Вам нужно будет установить сертификат charles.crt на ваше устройство.

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

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

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

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

Лучшие рейтинги работают отлично (немного старые, но все еще работают), но я просто хочу упомянуть, что с 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.