iOS的ATS配置那些事
来源:互联网 发布:温州管家婆软件 编辑:程序博客网 时间:2024/06/03 21:45
iOS的ATS配置
一、ATS是什么?
ATS(App Transport Security)是为了提高App与服务器之间安全传输数据一个特性,这个特性从iOS9和OSX10.11开始出现,它默认需要满足以下几个条件:
1、服务器TLS版本至少是1.2版本;
2、连接加密只允许几种先进的加密;
3、证书必须使用SHA256或者更好的哈希算法进行签名,要么是2048位或者更长的RSA密钥,要么就是256位或更长的ECC密钥。
二、使用默认的ATS设置要满足哪些条件
三个条件:
1、https 要基于TLS 1.2或以上版本;
2、证书的加密的算法要至少要SHA256的算法,用至少是2048位的RSA的key 或至少是256位的Elliptic-Curve(ECC)的key所产生的证书;
3、加密算法也是有限制,就是ATS中的ForwardSecrecy(超前的密码保护算法)配置项,需要在以下列表中:
NSURLSession/NSURLConnectionHTTP load failed (kCFStreamErrorDomainSSL, -9802)
三、如何适配
1、让服务端或运维的小伙伴配置下tomcat或nginx的TSL版本和证书算法,更新最新的SDK,比如友盟统计SDK刚刚可以支持ATS了,新浪微博等用的还是TLS1.0版本。需要配置一下。
2、公司证书算法达不到苹果的要求,运维的童鞋又不想改,因为苹果只是禁用了NSAllowsArbitraryLoads选项,我们可以通过其他的选项来兼容以前的接口。如下:
四、ATS配置说明
详细说明:
NSAppTransportSecurity: 配置ATS的跟属性。
NSAllowsArbitraryLoads : 是否允许所有的连接,包括http。默认值是No,如果设置成YES,就可以使用http了。2017年1月1号后该选项被禁用。NSExceptionDomains: 用于配置例外的域名,即在该配置项中的域不需要通过ATS的验证。
< domain-name-for-exception-as-string > : 需要添加例外的域名字符串,如:baidu.com
NSExceptionMinimumTLSVerion :最低支持的TSL的版本号,可用的配置有TLSv1.0、TLSv1.1以及TLSv1.2三个配置项。
NSExceptionRequiresForwardSecrecy :是否满足上文中列举的加密算法。因为我们服务端不支持这些算法,所以我们设置为NO。
NSExceptionAllowsInsecureHTTPLoads : 是否为HTTPS的服务器。用这个配置可用访问那些没有证书、自签名证书、过期证书以及证书与域名匹配不上的服务器。默认值是NO。
NSIncludesSubdomains : 子域名是否使用同样的配置。默认值是NO。如果设置为YES,则子域名如api.baidu.com也都使用相同的配置
NSThirdPartyExceptionMinimumTLSVersion : 如果是域名为第三的域名,且开发人员无法控制的情况下进行配置。设置最低支持的TSL的版本号
NSThirdPartyExceptionRequiresForwardSecrecy : 如果是域名为第三的域名,且开发人员无法控制的情况下进行配置ForwardSecrecy。五、检测接口是否满足苹果的ATS要求的两种方法
1、腾讯云提供的检测页面检测
2、终端输入 nsurl --ats-diagnostics --verbose 你的接口地址:
里面会详细说明你的证书哪点不符合ATS要求,当然下面自己制作证书去实现HTTPS的,检测不通过的,所以我觉得审核会被拒。
这种方法配置好了,在手机端就什么都不用配置就可以请求了。六、苹果官方信任证书里说到有三种证书
1、可信的根证书用于建立信任链,以验证由可信的根签署的其他证书,例如,与 Web 服务器建立安全连接。当 IT 管理员创建 iPhone、iPad 或 iPod touch 的配置描述文件时,无需提供这些可信的根证书。
2、始终询问的证书不受信任,但不受阻止。使用其中一个证书时,系统将提示您选择是否信任该证书。
3、已阻止的证书视为被盗用,将不再受信任。
- iOS的ATS配置那些事
- 趣米分享:iOS的ATS配置那些事,你整明白了吗?NSURLSession/NSURLConnectionHTTP load failed (kCFStreamErrorDomainSSL, -980
- ATS的属性配置说明
- iOS 升级HTTPS配置ATS-----(1)------
- iOS 升级HTTPS配置ATS-----(2)------
- ATS配置
- 【IOS网络】ATS的小总结
- 关于 iOS 10 中 ATS 的问题
- 关于 iOS 10 中 ATS 的问题
- 关于 iOS 10 中 ATS 的问题
- 关于 iOS 10 中 ATS 的问题
- 关于 iOS 10 中 ATS 的问题
- 关于 iOS 10 中 ATS 的问题
- 关于 iOS 10 中 ATS 的问题
- 关于 iOS 10 中 ATS 的问题
- 关于 iOS 10 中 ATS 的问题
- 关于 iOS 10 中 ATS 的问题
- 关于 iOS 10 中 ATS 的问题
- word2vec源码解读
- Fragment Arguments的使用
- 从零开始实现k线图走势图绘制(iOS实战篇)
- 大型网站架构:缓存在分布式系统中的应用(一)
- 关于Oracle Sales Cloud 中自定义对象和字段数据的导入
- iOS的ATS配置那些事
- Java利用System.getProperty("file.encoding")获取编码分析
- 随笔记---java
- Android popupwindow在指定控件正下方滑动弹出效果
- 笔记整理
- LIST集合的遍历过程中过滤一些无用数据
- GreenDao3.x使用介绍
- 应用程序启动页的作用
- 经典的诗词