一、假新闻如此猖獗
刚才一位老同事 打电话问:我们公司还是用的HTTP,马上就到2017年了,提交AppStore会被拒绝,怎么办?
公司里已经有很多人问过这个问题,回答一下: HTTP还是可以正常提交,不满足 苹果要求的 HTTPS 也可以正常提交。只需要修改下info.plist里的ATS配置。
昨天(2016-12-21)苹果发布声明,HTTPS的适配规则往后延,时间还没定。也就是现在,大家什么都不用改了。
以前写过相关的文章:iOS的ATS配置 - 2017年前ATS规定的适配 。文章中也说过2017年1月1日后使用HTTP修改ATS配置即可。后来没想到假新闻会传播的如此疯狂。
我们来看看这个假新闻是怎么快速传播并被把忽悠大家的:新闻的起源是 苹果开发者大会WWDC 2016上,苹果首席安全架构师 Ivan提到的:2016年末ATS将成为所有应用程序上传到AppStore 的要求。
iOS开发人员都知道, 从iOS 9 ATS出来后,大家都喜欢用 Allow Arbitrary Loads 选项来忽略ATS。如果不忽略ATS,APP就会强制使用HTTPS。
当时WWDC 2016上Ivan说的是 从 2017 年 1 月 1 日起,所有的新提交 app 默认是不允许使用 NSAllowsArbitraryLoads
来绕过 ATS 限制。可以通过配置ATS来进行适配。
然而 网络上的各种文章开始疯狂的传播:2017年1月1日起,必现用HTTPS才能通过审核!必现满足苹果对HTTPS证书和加密规则的要求!
刚开始是IT软文,然后就是iOS开发人员在自己的博客里不断传播。好吧,说明很多人写技术博客看到别人的观点 也不进行验证真假,直接拿来用。并且现在绝大多数的文章都是错的,这个有点恐怖。。。
连大多数的技术文章说的都是假的,想想其他社会新闻,假的会更多吧。 媒体的力量可以影响你的认知,哪怕这个认知是错的。
后来 在论坛中 苹果官方人员也给出过解释:What has changed is that App Review will require “reasonable justification” for most ATS exceptions. The goal here is to flush out those folks who, when ATS was first released, simply turned it off globally and moved on. That will no longer be allowed.
意思:不符合ATS要求的,需要进行说明理由。不能全局关闭ATS,即:不能再用NSAllowsArbitraryLoads了。
但是可以用ATS的Exception Domains属性进行相关配置。只需要提交的时候说明下原因就可以了。
比如:HTTP请求、不满足HTTPS要求的情况,如:TLS协议版本低、ForwardSecrecy算法不满足规则。等,这些都可以进行配置。
另外,昨天的时候,苹果又有了新动作:2017年1月1日,你可以继续关闭ATS:
新闻地址:https://developer.apple.com/news/?id=12212016b
大体意思:为了给你们更多的时间来准备,这个最终期限已经延长,具体什么时间还没定。
所以,现在大家现在 什么都不用修改了。。
二、如何适配HTTPS
因为我们的APP已经适配了HTTPS了。现在还用HTTP 不安全,确实太low了。说下如何适配HTTPS吧:
1、更新sdk:友盟、个推 等,这些第三方sdk都已经适配HTTPS了
2、接口的域名如果 满足苹果HTTPS的规则,就不用配置,如果不满足机会需要根据自己的情况配置,如:
3、我们的运维也在积极的适配,如果用的nginx,可以直接在nginx中配置ssl_ciphers选项,我们公司用的 Red ware(类似F5,以色列的设备),就需要单独配置了。