Чтобы настроить исключение для каждого домена, чтобы ваше приложение могло подключаться к незащищенному (или безопасному хосту с поддержкой без TLSv1.2), добавьте эти ключи в свой Info.plist (и обратите внимание, что Xcode не в настоящее время автоматически завершить эти ключи как первого Xcode 7 бета семян):
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>yourserver.com</key>
<dict>
<!--Include to allow subdomains-->
<key>NSIncludesSubdomains</key>
<true/>
<!--Include to allow HTTP requests-->
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<!--Include to specify minimum TLS version-->
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
</dict>
</dict>
Есть другие ключи, которые можно использовать для настройки приложений безопасности на транспорте, а также, например:
NSRequiresCertificateTransparency
NSTemporaryExceptionRequiresForwardSecrecy
NSTemporaryThirdPartyExceptionAllowsInsecureHTTPLoads
NSTemporaryThirdPartyExceptionMinimumTLSVersion
NSTemporaryThirdPartyExceptionRequiresForwardSecrecy
для Демострацию вы можете сделать так, как в вашем info.plist
, как показано в мычание изображение:
Для Demostration вы можете сделать так, как показано на следующем рисунке:
Но что, если я не знаю Все небезопасной домены мне нужно использовать?
Если ваше приложение (веб-браузер третьей стороной, например) необходимо загрузить произвольный контент, Apple предоставляет возможность отключить АТС в целом, но я подозреваю, что это разумно использовать эту возможность экономно:
<key>NSAppTransportSecurity</key>
<dict>
<!--Include to allow all connections (DANGER)-->
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Вы можете найти его Tech Note Here