iOS应用将强制使用HTTPS安全加密-afn配置https(190926更新)
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更新)的更多相关文章
- Tomcat8配置Https协议,Tomcat配置Https安全访问,Tomcat Https配置
Tomcat8配置Https协议,Tomcat配置Https安全访问,Tomcat Https配置 ============================== ©Copyright 蕃薯耀 2017 ...
- 购买https证书以及nginx配置https
文章来源 运维公会:购买https证书以及nginx配置https 1.https的作用 https的全名是安全超文本传输协议,是在http的基础上增加了ssl加密协议.在信息传输的过程中,信息有可能 ...
- Nginx 配置HTTPS 与Node.js 配置HTTPS方法
前段时间公司网站要求加上HTTPS安全CA证书,公司服务器全是阿里云服务器,并且配有负载均衡,所以选择直接在阿里云购买CA证书,阿里云有一种证书可以免费试用一年,决定申请此证书,阿里云证书需要验证,阿 ...
- https原理及tomcat配置https方法
一. 什么是HTTPS 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议.HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不 ...
- (HTTPS)-https原理及tomcat配置https方法
一. 什么是HTTPS 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议.HTTP协议传 输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常 ...
- https原理和如何配置https
参考:https://blog.51cto.com/11883699/2160032 上面说的已经很好地,我这里简单做个总结: 在网上我们做数据交互时候一般用的http协议,但是这种方式会使得交互内容 ...
- [从零开始搭网站六]为域名申请免费SSL证书(https),并为Tomcat配置https域名所用的多SSL证书
点击下面连接查看从零开始搭网站全系列 从零开始搭网站 由于国内的网络环境比较恶劣,运营商流量劫持的情况比较严重,一般表现为别人打开你的网站的时候会弹一些莫名其妙的广告...更过分的会跳转至别的网站. ...
- ubuntu14.04安装 Apache2 并配置https
一.安装 Apache2 sudo apt-get update sudo apt-get install apache2 安装完apache2,默认根目录在/var/www/html 下,点击其下的 ...
- iOS - HTTPS接口加密和身份认证
为什么要使用HTTPS代替HTTP HTTPS和HTTP的区别 https协议需要到CA申请证书,一般免费证书很少,需要交费. http是超文本传输协议,信息是明文传输,https则是具有安全性的SS ...
随机推荐
- {经典}springmvc+mybatis+restful+webservice Jeesz分布式架构
框架简介--主要定位于互联网企业架构,已内置企业信息化系统的基础功能和高效的代码生成工具,包括:系统权限组件.数据权限组件.数据字典组件.核心工具 组件.视图操作组件.工作流组件组件.代码生成等.采用 ...
- php-fpm内存泄漏问题排查
生产环境内存泄漏问题排查,以下是排查思路 生产环境上有严重的内存溢出问题(红色框所示,正常值应为是 20M 左右)同时系统有 Core Dump 文件产生排查过程中还发现一个现象,如果关闭 OPc ...
- hadoop最简伪分布式安装
本次安装运行过程使用的是Ubuntu16.04 64位+Hadoop2.5.2+jdk1.7.0_75 Notice: Hadoop2.5.2版本默认只支持64位系统 使用的jdk可以为1.7和1.8 ...
- Vue安装与简单使用
Vue入门 使用Typora打开https://pan.baidu.com/s/1Mf3ZFSthdVUQevqWr777eA 提取码: hg9b vue中文官网教学 安装与使用,我也经常看这个 点击 ...
- java面试题全集(下)
这部分主要是开源Java EE框架方面的内容,包括Hibernate.MyBatis.Spring.Spring MVC等,由于Struts 2已经是明日黄花,在这里就不讨论Struts 2的面试 ...
- Java中Collection、Map常用实现类研究分析
接口/实现类 描述 key是否可为null 为null是否报错 key是否重复 key重复是否报错 key是否和添加一致 是否线程安全 List 一组元素的集合 ArrayList 基于数组存储,读取 ...
- 五、vue中export和export default的使用
一.export的使用 比喻index.js要使用test.js中的数据,首先在test.js文件中进行导出操作 代码如下: export function list() { alert(" ...
- 新手的Linux zcat命令示例
Zcat是一个命令行实用程序,用于查看压缩文件的内容.它将压缩文件扩展为标准输出,允许您查看内容. 分类:Linux命令操作系统 2018-08-13 00:00:00 通常,使用gzip压缩的文件可 ...
- shell统计mysql当前连接数
[root@push-- scripts]# mysql -S /var/lib/mysql//mysql.sock -uroot -phlsms_push_Zaq1xsw@ -e "sho ...
- 删除表A的记录时,Oracle 报错:“ORA-02292:违反完整约束条件(XXX.FKXXX)- 已找到子记录
1.找到以”FKXXX“为外键的表A的子表,直接运行select a.constraint_name, a.table_name, b.constraint_name from user_constr ...