我们有一个通过HTTPS连接到服务器的iOS应用程序。当应用程序是用新的iOS 9 SDK构建并在iOS 9下运行时,会发生以下错误:
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)该应用程序使用AFNetworking 1.3.4和固定证书。如果我用IP地址连接到服务器,就会出现问题。如果我添加了NSAllowsArbitraryLoads配置,或者我用它的域名连接到服务器,它就能工作。
Tomcat连接器配置为sslEnabledProtocols="TLSv1、TLSv1.1、TLSv1.2“。
我试过重写主机名,但它似乎没有改变什么。
我还没找到很多关于ATS的官方文件。也许与IP地址连接不起作用?
发布于 2015-06-11 11:13:33
iOS9要求服务器只支持TLSv1.2,并支持完善的前向安全性。
还需要该应用程序支持IPV6,包括不使用硬编码IP地址。建议使用NSURLSession。否则,必须在应用程序plist中添加异常。
见WWDC-15会议“安全和您的应用程序”。
有关详细信息,请参见史蒂文·彼得森的博客。
发布于 2015-10-27 06:32:30
您可以将其添加到"Info.plist“文件中,它将允许非安全连接:
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>发布于 2015-08-20 10:25:38
我找到了另一个堆栈溢出答案,其中包含了服务器上准确的新需求清单,以完全填充iOS 9默认的应用程序传输安全要求:iOS 9安全服务器需求检查列表
希望这能有所帮助。
https://stackoverflow.com/questions/30778579
复制相似问题