WWDC 2016苹果开发者大会上,苹果在讲解全新的iOS10中提到了数据安全这一方面,并且苹果宣布iOS应用将从2017年1月起启用名为App Transport Security的安全传输功能。

2017年所有iOS应用必须支持ATS安全标准,将强制使用HTTPS安全连接;

为什么强制使用ATS 安全标准?

ATS 安全标准是苹果在发布 iOS 9 和 OS X EI Capitan 系统时发布的,这一标准通过强行推动一系列安全实际操作,从而积极促进安全性,同时还要求网络请求必须在一个安全的链接上传输,当开启 ATS 之后,网络传输将自动通过 HTTPS 协议传输而不是 HTTP 协议。启用HTTPS网络连接之后,数据传输的安全性将大幅提示,不容易被黑客拦截破译。

强制使用ATS 安全标准将会在 2017 年 1 月 1 日开始,苹果公司称,HTTPS安全标准将会确保我们的个人信息免遭意外泄露,确保应用默认遵守行为安全规范。

什么是HTTPS?

HTTPS就是http+SSL,简单地说就是在http协议的基础上开启一条SSL加密通道,让原本“裸奔”的数据,从加密通道中密文传输,保证了数据传输的安全性,服务器安装SSL证书,就可以激活SSL加密通道,实现https加密传输。如今,ATS 安全标准都会在苹果的开发工具打开,不过很多开发商已经停止使用安全功能。要知道如今 App Store 已经拥有超过 200 万个应用,而应用的下载量早已经超过了 1300 亿次,很显然,一个安全的 App Store 是我们每个人都非常需要。建议开发者不要简单地禁用ATS,而应该升级服务器的配置支持ATS,为用户提供更安全的服务。

天威诚信SSL证书助您快速升级https

APP应用按ATS要求升级为HTTPS其实并不复杂,天威诚信可提供Symantec 旗下全线数字证书产品。天威诚信拥有15年SSL认证经验, 2000年天威诚信将Symantec证书业务引入中国,开始为中国区客户提供SSL认证服务。是symantec在中国区合作时间最长、合作范围最广、合作层级最高的白金战略合作伙伴。天威诚信拥有最优秀的本土化服务团队, 可为您提供7×24小时专业技术服务。让您享受到最快捷,最全面,最安心的认证服务。

 

我的项目最近(1909)也要配置https

现在把过程记录,以方便大家参考

1.后台会给你一个.crt 证书文件 或者 直接给一个 .cer 文件

如果给的是.crt 那么需要将 .crt 双击放入钥匙串,导出.cer  再将钥匙串里面的.crt 删除

2. 将生成的.cer 拖入到工程的你想放入的文件夹的下面,Build Phases->Copy Bundle Resources中加入刚才的证书

3. afn的代码中需要加入这些

配置https的时候改的这句

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];

_httpsessionManager = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:BasePathScope] sessionConfiguration:configuration];//比如你的 域名是www.baidu.com 那么  BasePathScope 要写成  https://www.baidu.com

[_httpsessionManager setSecurityPolicy:[self customSecurityPolicy]];

+ (AFSecurityPolicy *)customSecurityPolicy {

// 先导入证书 证书由服务端生成,具体由服务端人员操作

NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"XXXX" ofType:@"cer"];//证书的路径 xx.cer

// AFSSLPinningModeCertificate 使用证书验证模式

AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];

// allowInvalidCertificates 是否允许无效证书(也就是自建的证书),默认为NO

// 如果是需要验证自建证书,需要设置为YES

securityPolicy.allowInvalidCertificates = YES;

//validatesDomainName 是否需要验证域名,默认为YES;

//假如证书的域名与你请求的域名不一致,需把该项设置为NO;如设成NO的话,即服务器使用其他可信任机构颁发的证书,也可以建立连接,这个非常危险,建议打开。

//置为NO,主要用于这种情况:客户端请求的是子域名,而证书上的是另外一个域名。因为SSL证书上的域名是独立的,假如证书上注册的域名是www.google.com,那么mail.google.com是无法验证通过的;当然,有钱可以注册通配符的域名*.google.com,但这个还是比较贵的。

//如置为NO,建议自己添加对应域名的校验逻辑。

securityPolicy.validatesDomainName = NO;

securityPolicy.pinnedCertificates = [[NSSet alloc] initWithObjects:cerData, nil];

return securityPolicy;

}

如此一来我的项目就好了。  并没有用到info里面配置白名单

参考链接

https://www.jianshu.com/p/8c128d9c9681

https://www.jianshu.com/p/c8619181907c

iOS应用将强制使用HTTPS安全加密-afn配置https(190926更新)的更多相关文章

  1. Tomcat8配置Https协议,Tomcat配置Https安全访问,Tomcat Https配置

    Tomcat8配置Https协议,Tomcat配置Https安全访问,Tomcat Https配置 ============================== ©Copyright 蕃薯耀 2017 ...

  2. 购买https证书以及nginx配置https

    文章来源 运维公会:购买https证书以及nginx配置https 1.https的作用 https的全名是安全超文本传输协议,是在http的基础上增加了ssl加密协议.在信息传输的过程中,信息有可能 ...

  3. Nginx 配置HTTPS 与Node.js 配置HTTPS方法

    前段时间公司网站要求加上HTTPS安全CA证书,公司服务器全是阿里云服务器,并且配有负载均衡,所以选择直接在阿里云购买CA证书,阿里云有一种证书可以免费试用一年,决定申请此证书,阿里云证书需要验证,阿 ...

  4. https原理及tomcat配置https方法

    一. 什么是HTTPS 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议.HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不 ...

  5. (HTTPS)-https原理及tomcat配置https方法

    一. 什么是HTTPS 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议.HTTP协议传 输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常 ...

  6. https原理和如何配置https

    参考:https://blog.51cto.com/11883699/2160032 上面说的已经很好地,我这里简单做个总结: 在网上我们做数据交互时候一般用的http协议,但是这种方式会使得交互内容 ...

  7. [从零开始搭网站六]为域名申请免费SSL证书(https),并为Tomcat配置https域名所用的多SSL证书

    点击下面连接查看从零开始搭网站全系列 从零开始搭网站 由于国内的网络环境比较恶劣,运营商流量劫持的情况比较严重,一般表现为别人打开你的网站的时候会弹一些莫名其妙的广告...更过分的会跳转至别的网站. ...

  8. ubuntu14.04安装 Apache2 并配置https

    一.安装 Apache2 sudo apt-get update sudo apt-get install apache2 安装完apache2,默认根目录在/var/www/html 下,点击其下的 ...

  9. iOS - HTTPS接口加密和身份认证

    为什么要使用HTTPS代替HTTP HTTPS和HTTP的区别 https协议需要到CA申请证书,一般免费证书很少,需要交费. http是超文本传输协议,信息是明文传输,https则是具有安全性的SS ...

随机推荐

  1. css实现两个div并排等高(一个div高度随另一个高度变化而变化)

    方法一.两个div都设置 display: table-cell; 方法二.父级div设置 display: -webkit-box;

  2. heartbeat如何避免脑裂

    heartbeat避免脑裂的方法 1)增加冗余的心跳线,例如双线条线,尽量减少脑裂发生的机会 2)启用磁盘锁:正在服务的一方锁住了共享磁盘,脑裂发生时,让对方完全抢走资源,如果占用资源的一方不解锁 , ...

  3. DevExpress中的gridControl选择问题

    在Dev控件中,gridControl是最常用的一个了. //直接通过gridView获取当前行 dr=this.gridView1.GetDataRow(this.gridView1.Focused ...

  4. mysql 的主从

    MySQL的Replication(英文为复制)是一个多MySQL数据库做主从同步的方案,特点是异步复制,广泛用在各种对MySQL有更高性能.更高可靠性要求的场合.与之对应的是另一个同步技术是MySQ ...

  5. robotframework调用外部python多次运行拿到的都是同一个值

    外部python是一个爬虫,爬取的内容的定义没有放入函数中.导致一次爬取多次使用的情况出现. 第一版函数如下: 改版后:

  6. 【ZOJ3627】Treasure Hunt II

    题目大意:给定一个长度为 N 的序列,现有两个人从 P 点出发,每个单位时间每个人最多可以移动一个单位,两人之间的最大距离不能超过 M,一共有 T 单位的时间,求在合法情况下,两人可以获得的序列点权和 ...

  7. Redis数据类型之列表操作

    redis 目录: 1.自动分配(redis) - 批量导入 2.微信自动绑定 3.django的ORM做不了的操作,怎么自定义操作数据库 extra ’ 4.报表 公司每个月销售的业绩 5.权限 = ...

  8. 浅谈javaScript中的继承关系<一>

    // JavaScript Document //创建三个构造函数 function Shape(){ this.name='ahape'; this.toString=function(){retu ...

  9. MySQL——Alias

    查询时,当表名很长或者执行一些特殊查询的时候,为了方便操作或者需要多次使用相同的表时,可以为表指定别名,用这个别名代替表原来的名称. 设置别名为表设置别名 <表名> [AS] <别名 ...

  10. 【NOIP2016提高A组模拟8.19】(雅礼联考day2)总结

    第一题又有gcd,又有xor,本来想直接弃疗,不过后来想到了个水法: 当两个相邻的数满足条件时,那么他们的倍数也可能满足条件.然后没打,只打了个暴力. 正解就是各种结论,各种定理搞搞. 第二题,想都不 ...