2013-07-24 49 views
55

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

+0

Если вы на Android 7.0, вы можете найти решение по этой ссылке: [введите описание ссылки здесь] (http://stackoverflow.com/a/39227880/7220486) –

ответ

1

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

+0

Я все еще вижу эту проблему с Charles 3.8b1 - с моей настройкой кажется, что в Android (используя Galaxy Note/4.1.2) некоторые из запросов POST HTTPS теряются - в iPhone 4S все хорошо. – otso

+0

работает на моей Галактике S3. Надеюсь, они скоро исправит Чарльза для Android-устройств. – bianca

7

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

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

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

+0

Я их установил. – bianca

+0

Хорошо - этот симптом вы бы увидели, нет ли сертификата, поэтому предлагайте это решение. – otso

+1

Это не работало для меня, пока я также не добавил «*» в список разрешенных хостов SSL в настройках прокси – gorbysbm

43

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

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

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

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

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

Шаг 4 немного сложнее. Если вы хотите разрешить ВСЕ хосты, то просто ничего не добавляйте! Я пытался с «\ *» и «\ *. \ *» И получал ошибку «Файл сертификата не существует». Выход из раздела местоположения в пустое разрешен для меня. – Tiago

+0

Этот ответ кажется устаревшим. После обновления до Charles 3.10 корневой файл Charles cert генерируется для каждого ПК/Mac во время установки, вы можете экспортировать его из справки> SSL Proxying> Save Charles Root .... – semicircle21

+0

@ semicircle21 - вы должны добавить новый ответ, чтобы он может быть проголосован – bkurzius

27

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

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

Нет «Разрешить SSL-проксирование» –

+0

@ MarianPaździoch Извините за ошибку в шаге 2: 2. Перейдите в Прокси> SSL-прокси Настройки ... – semicircle21

+0

Примечание. На шаге «Добавить местоположение» вы можете ввести * в качестве хоста и 443 в качестве порта, если вы хотите включить прокси SSL для всего трафика HTTPS. – markproxy

60

для Android7

см: How to get charles proxy work with Android 7 nougat?

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

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

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

  2. SSL Proxy Settings: Proxy -> SSL Proxy Settings, вкладка SSL проксирование, Check «включить SSL прокси-соединения», и добавить . Местоположения: enter image description here enter image description here

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

В Android Phone:

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

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

  3. В «Имя сертификата» ввести все, что вы хотите

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

Готово.

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

+1

Я использую Charles 4.1.3 и в меню справки, он говорит мне: «Настройте свое устройство, чтобы использовать Charles как его HTTP-прокси на 10.72.xx.xx: 8888, затем перейдите к chls.pro/ssl, чтобы загрузить и установить сертификат. «Он работает на моем iPhone, но не на Android. В моем Android я посещаю старые работы url 'charlesproxy.com/getssl'. – iplus26

+0

В браузере Chrome Chrome на Android 6.0, когда я перешел на http://charlesproxy.com/getssl, он показал статическую страницу «Сертификация сертификата SSL CA CA ...» и не начал загрузку сертификата. Просьба уточнить, что необходимо сделать в этом случае? – vikramvi

+0

Я мог бы решить описанную выше проблему с помощью следующих шагов: 1. удалить существующий сертификат charles (поврежден/истек/и т. Д.) 2. включить прокси-сервер в устройстве 3. загрузить новый сертификат (смешная вещь здесь, как показано ниже, на одном android «charles-proxy..certificate» .cer »загружается, а на другом« charles-proxy..certificate.pem »загружается. 4. Из браузера Chrome, пытающегося открыть файл .pem, появляется сообщение об ошибке. 5. Прямо перейдите в папку с файловым менеджером. на нем и дать новое имя Чарльзу, он будет установлен, и вы можете увидеть трафик в charles – vikramvi

0

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

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

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

1

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

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

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

0

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

Смежные вопросы