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. 解决Linux下SSH超时自动断开

    title: 解决Linux下SSH超时自动断开 comments: false date: 2019-08-19 19:22:55 description: Linux 下 SSH 超时自动断开?? ...

  2. ERP和MES系统的区别和关系?

    1.ERP和MES的区别:ERP(Enterprise Resources Planning)是企业资源计划,它是在物料需求计划MRP(Material Requirement Planning)和制 ...

  3. Delphi 布尔型数据

  4. 查看 php 编译参数

    /app/php/bin/php -i|grep configure 范例 4: [root@VM-001 ~]# /app/php/bin/php -i|grep configure Configu ...

  5. 008-saltstack之salt-ssh

    根据以往运维工作中操作经验来说,当管理上百台上千台服务器时,选择一款批量操作工具是及其有必要的.早期习惯于在ssh信任关系的前提下做for;do;done循环语句的批量操作,后来逐渐趋于使用批量工具操 ...

  6. iOS控件圆角与半圆角

    开发过程中难免用到圆角以及恶心的半圆角,看代码 半圆角:这是把左边的两个角切成了圆角 UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoun ...

  7. netty学习第5章 netty整合websocket

    学习netty之后,可能都有一个疑问,就是如何选择一个编码.解码器,在netty中的编解码可是和json这种编解码是不一样的,netty的编解码器主要是解决TCP粘包.拆包的问题.netty中有许多自 ...

  8. MYSQL利用merge存储引擎来实现分表

      创建user1和user2两个分表 建表语句如下:只是表名不一样,其他字段信息及主键一致. CREATE TABLE IF NOT EXISTS user1( id INT(11) NOT NUL ...

  9. bash: ipconfig: command not found

    问题描述: [root@localhost ~]# ipconfig-bash: ipconfig: command not found[root@localhost ~]# 解决方法一: cd /e ...

  10. Softmax函数与交叉熵

    在Logistic regression二分类问题中,我们可以使用sigmoid函数将输入Wx+b映射到(0,1)区间中,从而得到属于某个类别的概率.将这个问题进行泛化,推广到多分类问题中,我们可以使 ...