Ситуация, в которой Чарльз обеспечивает прокси HTTPS, немного изменилась.
Сначала параметры установки сертификатов были перемещены в меню справки.
Help -> SSL Proxying -> Install Charles Root Certificate
Help -> SSL Proxying -> Install Charles Root Certificate in iOS Simulators
Во-вторых, начиная с iOS 9, вы должны предоставить опцию NSAppTransportSecurity
в вашем Info.plist
, и если вы хотите, чтобы Чарльз работал как человек посередине, вы должны добавить:
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
как часть ваших доменов, смотрите полный пример:
<key>NSExceptionDomains</key>
<dict>
<key>yourdomain.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
Причина в том (я полагаю), что Чарльз в какой-то момент общается в чистом http, выступая в роли человека на промежуточном сервере https.
Последний шаг - активировать SSL-прокси для этого домена в Charles (щелкните правой кнопкой мыши домен и выберите «Включить SSL-прокси»)