您的位置:首页 > 大数据 > 人工智能

AFNetworking 3.0 https 报错问题 CFNetwork SSLHandshake failed (-9801)

2016-06-21 15:49 776 查看
AFNetworking 3.0在使用https请求时候报错 NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9801)

但是在AFNetworking 2.0版本没有这个问题,可能是在3.0版本中对证书的TLS版本有要求。貌似是TLSv1.2之上

需要在NSAppTransportSecurity中添加对域名版本号的支持

<key>NSExceptionDomains</key>

        <dict>

            <key>your_domain.cn</key>

            <dict>

                <key>NSTemporaryExceptionMinimumTLSVersion</key>

                <string>TLSv1.0</string>

            </dict>

         </dict>

</dict>
http://www.360doc.com/content/15/0918/15/20919452_499915817.shtml
例4 低级的ATS

在某些情况下,可能ATS用于所有情况,或者一些,或者是自有的URL,但是并未针对所有的ATS最佳实践全部支持。也许你的应用服务器仅支持TLS1.2,但是不支持之后的版本,与其把涉及到的所有域都设置为不用ATS,不如设置为支持版本较低的ATS。这种场景下,需要创建一个*NSExceptionDomains*字典,这是一个对于每个域都要重用的字典选项,然后设置*NSExceptionRequiresForwardSecrecy*值为false。类似的,如果你希望向前支持,但是需要最低版本的TLS,你可以通过*NSExceptionMinimumTLSVersion*关键字定义你的应用服务器所支持的TLS版本。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息