关于HTTPS的iOS应该做的事

苹果官方最新消息:原定于2017.1.1强制的https被延期了,但是具体到什么时候不确定,等官方通知:

官方通知

但是https我们势在必行,那么真正需要我们做的到底是什么呢?一般分为两种情况:

1.如果我们用的是付费的公信机构颁发的证书,标准的https,那么无论我们的客户端用的是AFN或者原生的NSUrlSession,我们什么都不用做,代理方法也不用实现,网络请求就能正常完成。

2.如果我们用的是自签名的证书:

    * 首先需要在plist文件中,设置可以返回不安全的请求(关闭该域名的ATS)。

    * 其次,如果我们使用的是NSUrlSession,那么需要我们在代理方法实现:


如果是AFN,则需要设置policy:


把证书倒进工程之后在AFN里设置


总结一下https的验证流程:

就是用户发起请求,服务器响应后返回一个证书,证书中包含一些基本信息和公钥。

用户拿到证书后,去验证这个证书是否合法,不合法,则请求终止。

合法则生成一个随机数,作为对称加密的密钥,用服务器返回的公钥对这个随机数加密。然后返回给服务器。

服务器拿到加密后的随机数,利用私钥解密,然后再用解密后的随机数(对称密钥),把需要返回的数据加密,加密完成后数据传输给用户。

最后用户拿到加密的数据,用一开始的那个随机数(对称密钥),进行数据解密。整个过程完成。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容