2014-08-22 10 views

ответ

117

Обновление: Charles 3.9.3+ имеет встроенную функцию для настройки iOS-симуляторов (т. Е. Установки SSL-сертификата Charles). Это можно найти в меню «Справка» в приложении «Чарльз». (Help > SSL Proxying > Install Charles Root Certificate in iOS Simulators)

Нижеследующее относится к Чарльзу 3.9.2:

Скачать configuration shell script из Charles Proxy website. Затем замените скрипт с нижеследующим, и запустить его на вашем Mac:

#/bin/bash 
install() { 
if [ -f "$SQLITEDBPATH" ]; then 
cp -n "$SQLITEDBPATH" "$SQLITEDBPATH.charlesbackup" 
sqlite3 "$SQLITEDBPATH" <<EOF 
INSERT INTO "tsettings" VALUES(X'189B6E28D1635F3A8325E1E002180DBA2C02C241',X'3123302106035504030C1A436861726C65732050726F78792053534C2050726F7879696E6731243022060355040B0C1B687474703A2F2F636861726C657370726F78792E636F6D2F73736C3111300F060355040A0C08584B3732204C74643111300F06035504070C084175636B6C616E643111300F06035504080C084175636B6C616E64310B3009060355040613024E5A',X'3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554462D38223F3E0A3C21444F435459504520706C697374205055424C494320222D2F2F4170706C652F2F44544420504C49535420312E302F2F454E222022687474703A2F2F7777772E6170706C652E636F6D2F445444732F50726F70657274794C6973742D312E302E647464223E0A3C706C6973742076657273696F6E3D22312E30223E0A3C61727261792F3E0A3C2F706C6973743E0A',X'3082045E30820346A003020102020101300D06092A864886F70D01010505003081913123302106035504030C1A436861726C65732050726F78792053534C2050726F7879696E6731243022060355040B0C1B687474703A2F2F636861726C657370726F78792E636F6D2F73736C3111300F060355040A0C08584B3732204C74643111300F06035504070C084175636B6C616E643111300F06035504080C084175636B6C616E64310B3009060355040613024E5A3020180F31383939313233313132303030305A170D3338303932343033313930355A3081913123302106035504030C1A436861726C65732050726F78792053534C2050726F7879696E6731243022060355040B0C1B687474703A2F2F636861726C657370726F78792E636F6D2F73736C3111300F060355040A0C08584B3732204C74643111300F06035504070C084175636B6C616E643111300F06035504080C084175636B6C616E64310B3009060355040613024E5A30820122300D06092A864886F70D01010105000382010F003082010A02820101008349587455EFB272E397A31D3B52D9B13115C93F320766D2D451117F45C40285506027079ED439CABB94D44F1AE136EB1E79BF77ABE43345AD1D436809CF9E035C439272F3CA917DCADD7FBD0E3929F1A345F0B89096130BBD116F8D3AB5655789B7B0831325BD22903F198DA6BDDA30C08DFD17CE9AB51C48555264307BCF789A2B6C48DF4ECAF3EA2C092EE737AD8F397900AC03303BFE2AE43549030A7866CB6FE9B04B9F6EC498B4E7369E99B45491BF093858A77C72F8ADC818E018D413265E39446BE514F78EB57A23AA88F630776F861A9163E04AD38EE8A5C9219D0FC23F6B9A6324455DEA6F4A6A251ECA1FA3D6288CB89FD12A2062A3A015A56F250203010001A381BC3081B9300F0603551D130101FF040530030101FF307706096086480186F842010D046A136853534C2050726F7879696E6720697320656E61626C656420696E20436861726C65732050726F78792E20506C6561736520766973697420687474703A2F2F636861726C657370726F78792E636F6D2F73736C20666F72206D6F726520696E666F726D6174696F6E2E300E0603551D0F0101FF040403020204301D0603551D0E04160414BB27F4CB2EB6DBB058101BBD803F38D208D76129300D06092A864886F70D010105050003820101000041F935F30B209E56360F7E3D9C30314A213323C47EDCEA1467600A50FFE4E8E39DFCA8C8D34463C34745FF04C870F1DF28BB772DB0CF1BCA677B70842C742BC6D5FB00559AD643C6BF2C95BD0B855A961D7D6A3EADA9C642E9A789474C4AD838C6F732D8D859548D30829DF7A32D098FE3F00147DAF08C0B37DD597184C1E27A61EA42050C73994E809013CB21E37BF84BF923BCEFEA6164FD28AB9058CCC48F1F486FC1C47EBD8A9C933F542401B11F36A003E47B141A41C7B326D18D023E11EDB445699AA44800254EA33F174FD5EB1CCCE6A09365751FF905988C06315B5575067BF65EC24CAD1A6A601846D1D2F51F1F420A2762990B044000619D1C84'); 
EOF 
fi 
} 

for SQLITEDBPATH in ~/Library/Developer/CoreSimulator/Devices/*/data/Library/Keychains/TrustStore.sqlite3; do 
    echo $SQLITEDBPATH 
    install 
done 

echo "The Charles SSL CA Certificate has been installed for the iPhone Simulator" 

Некоторые вещи, чтобы отметить:

  • вы должны открыть Чарльз перед запуском симулятора. Если закрыть Чарльз, сетевые запросы будут терпеть неудачу, пока вы не перезагрузите Тренажер
  • вам нужно будет делать это каждый раз, когда вы «Сброс содержимого и настроек ...» на тренажере
  • Для Xcode 5: если вы глядя на настройку Charles Proxy на Xcode 5 и более ранних версиях, вам не нужно изменять оригинальный скрипт. Просто скачайте его с веб-сайта Charles и запустите его как-is
+0

Удивительный! Спасибо. – iHunter

+3

Работает после перезапуска симулятора. – avdyushin

+8

Ответ, кажется, исправляет проблему с запросом SSL. но главной проблемой может быть Чарльз не обрабатывает никаких запросов от iOS simulator 8.0/Xcode6 Знаете ли вы, как это исправить? – aelam

2

Я не видел сценарий оболочки конфигурации на этой странице. Я сделал следующее, и она работала для меня:

http://raptureinvenice.com/getting-the-charles-debugging-proxy-to-work-with-ios-and-genymotion/

+0

Этот ответ лучше, чем @ jonsibley's. Сценарий конфигурации на веб-сайте Charles исчез. –

+0

Я думаю, что его просто перевели сюда: http://www.charlesproxy.com/documentation/faqs/ssl-connections-from-within-iphone-applications/ –

10

Другой способ сделать это, чтобы перейти к сертификату http://charlesproxy.com/charles.crt на устройстве

, который представит вам экран:

install certificate prompt screen

+0

Я пробовал этот метод, но он также не смог загрузить безопасный сайт, когда запуск локального сервера. Может ли кто-нибудь рассказать о том, как справиться с этой проблемой? –

+1

Попробуйте воспользоваться браузером Safari, чтобы узнать, есть ли что-то неправильное в сертификате. Для этого нажмите на символ блокировки для вашего сайта. [Диалоговое окно сертификата сертификата Safari] (http://imgur.com/LrUZkdA). Я подозреваю, что вы используете самоподписанный сертификат и вам необходимо установить сертификат клиента на свой компьютер. Это можно сделать с помощью Safari и выбрав Trust -> 'always allow'. – user1307434

+0

Я должен был сделать это, чтобы избавиться от ошибок SSL Handshake. –

17

Согласно Чарльзу документации

iOS Simulator должен использовать настройки прокси-сервера системы. Если это не так, попробуйте выйти и перезапустить iOS Simulator. Что касается Xcode 6, важно, чтобы Чарльз работал и устанавливался в качестве прокси-сервера Mac OS X до запуска iOS Simulator.

Read Here

Так просто выйти из симулятора, открытый Чарльз, а затем запустить приложение снова. После этого вы можете отслеживать свои сетевые вызовы.

ПРИМЕЧАНИЕ. Ваши сетевые вызовы потерпят неудачу, если вы покинете Чарльз. Поэтому вам нужно либо выйти из симулятора, либо запустить его снова, либо снова открыть Чарльза.

+1

Я обнаружил, что если у вас установлен URL-адрес прокси-сервера «autoconfigure», Charles Proxy не будет работать. Кажется, что URL-адрес автоконфигурации отменяет любые настройки ручного прокси-сервера. Удаление URL автоконфигурации и указание ручных настроек (с учетными данными, в моем случае) позволили Чарльзу повторно выполнить настройку параметров, и это сработало .. даже не перезапустив iOS Simulator (7.1). –

1

Просто (повторно), начиная с Симулятора после того, как Чарльз начал фиксировать его для меня.

2

Проверьте это:

Как Чарльз v3.9.3 есть пункт в меню Справка "Установить Charles CA SSL сертификат в IOS симуляторы", который будет автоматически устанавливать SSL Чарльза CA в вашем iOS Симуляторы.

Кроме того, вы можете изменить свой код, чтобы NSURLConnection принял любой сертификат SSL. Пожалуйста, смотрите вопрос и ответ на Stack Overflow: How to use NSURLConnection to connect with SSL for an untrusted cert?

Вы можете проверить его на этой ссылке:http://www.charlesproxy.com/documentation/faqs/ssl-connections-from-within-iphone-applications/

2

В 'Установить Чарльз корневой сертификат в IOS тренажерах' не работает в текущей версии CharlesProxy (3.11) с Xcode 7/IOS 9 имитаторы.

Вместо этого используйте параметр «Установить сертификат Rolex на мобильном устройстве или удаленном браузере ...». Это даст вам URL-адрес сертификата.

Если вы откроете этот URL-адрес в Safari в симуляторе, вам будет предоставлена ​​возможность установить сертификат.

Вам по-прежнему необходимо отключить защиту транспорта приложений. Я не понимаю, почему это необходимо, когда у вас установлен сертификат; Думаю, CharlesProxy не использует достаточно большие ключи/подписи.

+0

Если ничего больше, сертификат самоподписан и наверняка не будет летать с требованиями ATS от Apple. Первый шаг заключается в том, чтобы иметь сертификат Чарльза, подписанный санкционированным центром сертификации, но логистика в сторону, это будет стоить денег. Домен также должен быть публичным. И т. Д. Это будет нелегко, если это вообще возможно. – Hampden123

+0

@ Hampden123 Насколько я знаю, механизм безопасности Apple App Transport Security позволит самоподписанный сертификат *, пока он правильно установлен на устройство iOS в качестве доверенного сертификата *, поэтому я считаю, что charlesproxy нуждается в отключении ATS для другого причина. Кажется, я не могу получить доступ к документации Apple ATS, чтобы проверить это. – JosephH

+0

Если вы (или кто-либо) успешно выполнили самоподписанный сертификат на устройство iOS 9 без отключения ATS, сообщите мне, как вы это делаете. ТИА! – Hampden123

27

Я только что проверил Чарльза над симулятором Xcode 7/iOS9. Просто несколько советов, я хочу добавить, если у вас возникли проблемы:

  • Убедитесь, что «Включить Mac OS прокси» и «Использование HTTP Proxy» проверяются под Proxy Чарльза | Настройки прокси; и, возможно, проверьте «Включите Mac OS X прокси при запуске», если вы не хотите делать этот шаг каждый раз, когда вы начинаете Чарльз.
  • Если ваш Автоматическая настройка прокси-сервера (и/или Auto Proxy Discovery) устанавливается в вашей системе Preferences | Network, вам необходимо снять флажок, чтобы сайт Charles's прокси (HTTP) и Secure Web Proxy (HTTPS) не вступил в силу.
  • Если вашей компании требуется прокси-сервер, независимый от Charles, вам необходимо вручную скопировать настройки внутри Charles, чтобы они не были отменены Чарльзом, и вы не сможете получить доступ к Интернету. Обратите внимание на прокси URL и номера портов перед запуском Чарльза. Запишите эти Web Прокси и Защищенный веб-прокси настроек под прокси-сервером Charles '| Внешние настройки .
  • "Включите SSL-прокси" и добавьте свою конечную точку в список через Charles ' Proxy | Настройки SSL-проксирования.
  • «Установите Charles Root Certificate в iOS Simulator« via Charles »Помощь | Меню SSL Proxying.
  • И да, убедитесь, что Чарльз настроен и начал сначала перед вами Запустите симулятор.
  • Наконец, на данный момент отключите ATS во время разработки, пока мы не услышим больше от Apple.
+0

«И наконец, отключите ATS во время разработки, пока мы не услышим больше от Apple». - Пятно, отсутствующее в других ответах выше. –

+0

Спасибо! Они должны положить это на сайт Чарльза! –

+0

Чарльз поддерживает безопасность транспорта приложений (ATS) с версии 3.11.4. –

0

Для тех, кто борется с ненадежными соединениями на тренажерах Xcode 9 Беты:

Я не знаю, если установить скрипт работает или нет, но вы можете установить сертификат Карлова таким же образом, как и на физическом устройстве - через сафари.

Последний шаг, который необходим (конечно, после установки сертификата либо через скрипт, либо через Safari): Перейдите к настройкам Simluator -> general -> about -> Настройки доверия сертификатов -> Разрешить пользовательский корень Charles Proxy ... -> enable

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