iOS — использование Charles с Alamofire и SSL

Я не могу заставить Чарльза работать с Alamofire, я всегда получаю:

SSLHandshake: соединение с удаленным хостом закрыто во время рукопожатия Возможно, вам потребуется настроить браузер или приложение так, чтобы они доверяли корневому сертификату Charles. См. SSL-прокси в меню «Справка».

Я установил корневой сертификат Charles в iOS Simulator и добавил хост для подключения к настройкам проксирования SSL. Есть ли у вас какие-либо дополнительные предложения? Большое спасибо!


person Tim Strehlow    schedule 08.10.2015    source источник


Ответы (3)


В iOS11 я пропустил этот дополнительный шаг.

В приложении Settings

Перейдите к General.About.Certificate settings.

Включите переключатель Charles Proxy SSL Proxying.

person neoneye    schedule 25.10.2017

Вероятно, это связано с добавлением App Transport Security в iOS 9. Чтобы разрешить Чарльзу доступ к SLL-трафику, вам нужно добавить следующее в Info.plist вашего приложения:

<key>NSAppTransportSecurity</key>
    <dict>
      <key>NSAllowsArbitraryLoads</key>
      <true/>
   </dict>

(из часто задаваемых вопросов Чарльза по этому вопросу)

Примечание. Возможно, вы захотите сделать это только в целях отладки, а не поставлять свое приложение с фактически отключенным ATS.

person Thor Frølich    schedule 08.10.2015

В дополнение к NSAppTransportSecurity, который описывает Тор, вы также должны доверять сертификату. Если вы перейдете в меню «Справка» Чарльза, вы увидите подменю «SSL Proxy». Когда я выбрал «Установить корневой сертификат Чарльза» и «Установить корневой сертификат Чарльза в симуляторах iOS» в этом подменю, я смог успешно проксировать HTTPS-запросы. Очевидно, я также добавил рассматриваемый хост в «Прокси» - «Настройки прокси-сервера SSL» (например, с портом * и полным именем хоста).

person Rob    schedule 28.05.2016