12.Https

在iOS9以后,直接进行HTTP请求是会报错。系统会告诉我们不能直接使用HTTP进行请求,需要在Info.plist中控制ATS的配置。"NSAppTransportSecurity"是ATS配置的根节点,配置了节点表示告诉系统要走自定义的ATS设置。 "NSAllowsAritraryLoads"节点控制是否禁用ATS特性,设置YES就是禁用ATS功能,那么这时候http请求就可以访问了。

那如果要发送https请求呢?

分两种情况:

  • 证书是受信任的,就是证书是从权威的第三方机构购买的,在这种情况下,我们客户端是不需要做任何事情的。
  • 证书是不受信任的(自签名证书),我们需要做两件事情:
    1.修改info.plist中控制ATS的配置,要求禁用ATS特性。
    2.安装并信任该证书。

如果是自签名证书,我们需要安装并信任该证书:

  • 在用NSURLSession时候,我们会在它的代理方法中得到服务端传来的证书,并进行信任和安装:
09BCDE07-C4E8-47C0-AAAD-014EDA310D63.png
  • 在用AFN的时候
6847C994-461D-4E93-8E2B-FE88959BE1F7.png
  • 那么我们客户端怎么就能辨别出是第三方颁发的证书还是自签名证书呢?
    其实在苹果内部已经内置了第三方的根证书,发过来证书的时候,苹果可以自行验证;而自己签名的证书,肯定是没有和苹果进行沟通的,这时候,苹果是不信任的,那么就得我们自己来配置,然后进行信任。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 很可能你的应用是与一个支持HTTPS传输数据的服务器交互,但是并没有使用TLS 1.2或更高。在这种情况下,你定义...
    Www刘阅读 8,308评论 0 5
  • SSL/TLS协议运行机制的概述:http://blog.csdn.net/xiaofei125145/artic...
    zfl1024阅读 6,809评论 0 5
  • -、block 解决两个界面之间的传值,常应用在网络请求中,请求成功与否返回响应的数据。现在基于BaicViewC...
    飞鱼IOS阅读 4,900评论 10 11
  • 柯南道尔曾一句道破侦察本色:“排撤除一切难以想象的身分,剩下的成果,纵然再难以想象,也是工作的本相。” 这句话如果...
    戴金岑阅读 2,720评论 0 0
  • “日子多么沉重/没有火焰能温暖我/没有太阳与我一起大笑/万物光秃/万物寒冷而无情/即便那可爱的,清晰的/星星也荒凉...
    东丰林波阅读 2,701评论 0 0