Доступ к локальной среде разработчиков на устройстве и в Charles Proxy и SSL?

Мне нужно получить доступ к локальной локальной среде (MAMP Pro) на устройстве. У меня это нормально работает для моего сайта без SSL, но я не могу заставить его работать на моем сайте, который требует SSL.

Как моя локальная машина, так и мое устройство находятся в одной сети Wi-Fi. В настройках wifi на устройстве я настроил прокси-сервер HTTP на ручной, сервер - это мой IP-адрес для среды разработки, а порт по умолчанию - 8888 (хотя он по-прежнему работает, если я изменяю его на 8080).

Я уже создал запись виртуального хоста для local.site1.com в MAMP Pro. Этот url теперь работает как на моей локальной среде разработчиков, так и на устройстве.

Если я попытаюсь перейти на свой сайт SSL на https://local.site2.com, это будет работать в среде dev, но устройство выдаст это сообщение:

Safari cannot open the page.

Ошибка: "There was a problem communicating with the secure web proxy server (HTTPS).".

Charles Proxy, по-видимому, является стандартным способом доступа к локальной среде разработки на устройстве с использованием имени домена, указанного в файле hosts, однако я рад использовать любое решение, которое работает.

Ответ 1

Конечно, OSX/iOS не нравится, что вы вводите сертификат, потому что он не исходит от "доверенного" источника, и он просто прямо убивает соединение.

Вы можете определить свой сертификат как прибывший из надежного источника с помощью Apple Configurator.

источник

изменить

  • Откройте приложение Apple Configurator и создайте новый файл конфигурации (подготовьте).
  • На вкладке установки отключите "Обновить iOS", так как мы не хотим идти все это. Мы просто хотим ввести сертификат.
  • Затем перейдите на вкладку "Установка" и в разделе "Настройки" вы выберите сертификат. (Поскольку мы не можем включить файл .pem в этот mobileconf, мы должны преобразовать наш корневой сертификат в файл .cert, и поскольку он уже находится в приложении для keychain, просто перейдите и экспортируйте его как .cert файл где-нибудь, где вы можете легко найти его.
  • В приложении Apple Configurator вы выбираете только что экспортированный корневой сертификат .cert и нажимаете mobileconfig на свой телефон/устройство через USB-кабель. (Вам будет предложено принять, что он устанавливается, поскольку он является "ненадежным" корневым сертификатом, а затем вы пройдете шаги, описанные создателем здесь, чтобы установить сертификат .pem на устройство.
  • После этого вы можете настроить прокси-сервер так же, как и для прокси-сервера http в сетевых настройках, и просмотреть весь зашифрованный трафик TLS на iOS 8.

Ответ 2

Вы пытались обновить или перезапустить его? Возможно, вам захочется перепроверить настройку HTTP-прокси вручную и проверить, что ваша локальная машина-разработчик и ваше устройство находятся в одной сети Wi-Fi. Кроме того, убедитесь, что ваш IP правильно, и прокси работает.


ПРИМЕЧАНИЕ. Если вы используете SSL для своих запросов данных:

-Go to Proxy → Настройки прокси-сервера → SSL → Установите флажок "Включить SSL" и добавьте хост и порт для ваших запросов

-Вы можете также отключить Desktop и веб-прокси из раскрывающегося списка Proxy, чтобы вы могли лучше изолировать трафик вашего приложения.


Возможно, вы захотите отключить сотовые данные, чтобы гарантировать, что весь трафик запущен через Wi-Fi/Charles Proxy


Затем запустите Charles и перейдите на вкладку "sequence" в верхнем окне, чтобы увидеть каждый вызов и статус, как они сделаны в режиме реального времени, включая размер и продолжительность ответа. Нажмите на запрос, чтобы просмотреть сведения в нижней панели, включая: "Обзор", "Запрос", "Ответ" и "Сводка".

Убедитесь, что вы изучили параметры для разных типов данных. Например, если ваш ответ является изображением, вы можете увидеть фактическое изображение и размеры. Если ваше приложение использует JSON, у вас есть выбор JSON Tree Navigator, или вы можете "скопировать ответ", щелкнув правой кнопкой мыши запрос в верхней вкладке "Последовательность". Вставьте результаты во что-то вроде http://www.uize.com/examples/json-prettifier.html для удобного чтения.


ВО ВРЕМЯ ЗАПУСКА, ПРОВЕРЬТЕ ЭТИ:

1.Использует ли ваше приложение разумное количество запросов данных, чтобы сбалансировать время запуска и предварительную выборку, чтобы ускорить "следующие страницы"?

2.Is любой запрос получает больше данных, чем необходимо?

3. Высокое время отклика из-за конфигурации сервера или плохой бэкэнд


ПРОВЕРЬТЕ ЭТИ ВО ВРЕМЯ ПРИМЕНЕНИЯ APP:

1. Есть ли общий путь навигации, который медленный и может выиграть от предварительной выборки при запуске?

2.Is данные фактически поступают из кеша, а не инициируют новый запрос данных?

3.Is отправляются любые данные отслеживания (например, Omniture, Google Analytics или другие сторонние службы), и если это правильно отправлено? Есть ли какие-либо запросы, которые были сделаны ошибочно или неоднократно из-за ошибки кодирования?

4.Если вы обслуживаете видео, выбран правильный формат кодирования/формата? (Чарльз может дросселировать скорости, чтобы имитировать беспроводные телефонные соединения.) Изображения, соответствующие размеру устройства?

Ответ 3

Если вы используете Charles, вам также нужно будет установить его сертификат:

iOS 4 и более поздние версии На устройстве установите свой HTTP-прокси для использования Charles, а затем выберите http://www.charlesproxy.com/getssl, чтобы установить сертификат.

Ответ 4

Прокси-сервер Charles

Чтобы использовать Charles Proxy для SSL, вам необходимо установить корневой корневой центр Charles Proxy. Это связано с тем, что Charles Proxy фактически действует как MITM, чтобы вы могли реально смотреть на трафик SSL, создаваемый между вашим приложением и сервером (что может быть полезно при отслеживании проблем или когда вы хотите точно знать, сколько трафика создается).

См: http://www.charlesproxy.com/documentation/proxying/ssl-proxying/

и

http://www.charlesproxy.com/documentation/using-charles/ssl-certificates/

После установки ROOT CA ваше приложение и встроенный браузер Safari должны иметь доступ к сайту.

Другая альтернатива

Другим способом, который я сделал это в прошлом, является использование dnsmasq, который является довольно легким DNS-сервером, который будет читать ваш локальный файл /etc/hosts вашей системы, а также перенаправлять сервер имен в resolv.conf, когда он isn 't в вашем файле hosts.

Вы можете установить dnsmasq через macports на вашем Macbook/laptop, (cygwin на windows), или обычно это довольно стандартный дистрибутив, в котором вы работаете * nix.

После запуска dnsmasq вы можете просто настроить свое устройство через Settings/Wifi, чтобы указать на ваш сервер dnsmasq для разрешения имен. До тех пор, пока ваш сайт находится в вашем /etc/hosts, и у вас нет шлюза блокировки брандмауэра на базе хоста 53 (DNS), тогда вы должны быть хорошими.

Я использую dnsmasq большую часть времени, но Charles Proxy пригодился, когда я пытался ДЕЙСТВИТЕЛЬНО отслеживать, сколько данных было использовано из моего приложения (для меня было специфическим требованием было то, что приложение было своего рода киоск, который должен был оставаться под 3 МБ использования в день, чтобы мы не получали огромные сотовые счета).