iOS APP配置HTTPS流程

您的APP启用HTTPS了吗?距离2017年1月1日"苹果iOS强制要求HTTPS连接"还有不到1个月的时间,是否支持HTTPS直接影响APP能否在苹果商店顺利上架。本文将帮助您更快实施HTTPS!

1. 背景

2017年1月1日起,苹果AppStore中的所有App都必须启用 App Transport Security(ATS)安全功能。App TransportSecurity(应用程序安全传输),简称 ATS,是苹果在 iOS 9 中首次推出的一项隐私安全保护功能,启用ATS后,它会屏蔽明文HTTP资源加载,强制App通过HTTPS连接网络服务,通过传输加密保障用户数据安全。ATS在 iOS 9 中是默认开启的,但开发者仍然可以选择关闭 ATS,让自己的应用通过 HTTP 连接传输数据。但从2017年1月1日起,这招将行不通了,所有提交到 App Store 的App必须强制开启 ATS。

2. 影响

100%被拒的情况:

NSAllowsArbitraryLoads,打开此开关相当于关闭ATS

NSExceptionAllowsInsecureHTTPLoads,使用自有网站的HTTP链接

NSExceptionMinimumTLSVersion,使用自有网站低于TLS1.2标准的HTTPS链接

以下几种情况是特例,不会被拒:

App提供流媒体服务,媒体源已经对内容进行了加密,这时只要使用苹果的AV Foundation框架加载内容,就可以无视ATS;

App的内容如果有来自已知的第三方,不过最好的做法是和第三方沟通下,敦促他们所有传输都使用TLS1.2加密。

App的内容来自于不可知的第三方,比如说允许用户通过App访问任意网站,比如说浏览器app,可以忽视ATS。

3.为什么要用HTTPS

简单地说,HTTP是明文协议,通过该协议传输的数据处在被窃听、篡改、冒充这三大风险中,已经是非常不安全的传输协议。HTTPS是加密协议,就是在HTTP的基础上开启一条SSL加密通道,让原本明文“裸奔”的数据,从加密通道中密文传输,保证了数据传输的安全性。

4.准备工作

申请一个SSL证书

SSL证书按验证的类别可分:

DV SSL证书(域名验证型):只验证域名所有权,适合个人网站、博客等站点使用;

OV SSL证书(企业验证型):验证网站所属单位身份,适合企业级用户使用;

EV SSL证书(扩展验证型):扩展验证网站所属单位身份,这种证书在浏览器中会显示醒目的绿色地址栏,可信度最高,适合需要用户高度信任的企业级用户使用。

SSL证书类别

沃通新证书产品已经上线,支持苹果iOS系统,新品推广期间申请沃通超真SSL Pre通配型证书可享8折优惠,名额有限先到先得。

5.AFN配置HTTPS

5.1.项目中的网络交互都是基于AFN,要求AFN版本在3.0及其以上;

5.2.代码部分

设置AFN请求管理者的时候 添加 https ssl 验证。
/**
// 1.获得请求管理者

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

// 2.加上这个函数,https ssl 验证。

[manager setSecurityPolicy:[self customSecurityPolicy]];

// https ssl 验证函数

  • (AFSecurityPolicy *)customSecurityPolicy {

// 先导入证书

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

NSData *cerData = [NSData dataWithContentsOfFile:cerPath];

// AFSSLPinningModeCertificate 使用证书验证模式

AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];

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

//validatesDomainName 是否需要验证域名,默认为YES;
**/
5.3.关于证书

从沃通获取到HTTPS证书后,会得到一个有密码的压缩包文件,使用for other server里面的domain.crt的证书文件。

6.后台服务器配置HTTPS证书(Ngnix)

从沃通证书文件压缩包中,打开其中的for Nginx 文件可以看到 2 个文件,包括公钥、私钥。

打开Nginx安装目录下conf目录中的nginx.conf文件找到

HTTPS server

server {

listen 443;

server_name localhost;

ssl on;

ssl_certificate cert.pem;

ssl_certificate_key cert.key;

ssl_session_timeout 5m;

ssl_protocols SSLv2 SSLv3 TLSv1;

ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;

ssl_prefer_server_ciphers on;

location / {

root html;

index index.html index.htm;

}

}

将其修改为 :

server {

listen 443;

server_name localhost;

ssl on;

ssl_certificate sslkey/public.cer; (证书公钥)

ssl_certificate_key sslkey/private.key; (证书私钥)

ssl_session_timeout 5m;

ssl_protocols TLSv1 TLSv1.1TLSv1.2;

ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULL;

ssl_prefer_server_ciphers on;

location / {

root html;

index index.html index.htm;

}

}

保存退出,并重启Nginx。

通过https方式访问您的站点,确认站点证书安装配置正确。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 197,966评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,170评论 2 375
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 144,909评论 0 327
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,959评论 1 268
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,851评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,583评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,956评论 3 388
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,590评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,878评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,892评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,719评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,501评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,957评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,124评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,440评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,003评论 2 343
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,211评论 2 339

推荐阅读更多精彩内容

  • 一.准备工作 申请一个 SSL 证书 ,可在沃通WoSign网站申请所需SSL证书类型。SSL证书按验证的类别可分...
    南南总是懒懒阅读 527评论 0 1
  • 2017年1月1日"苹果iOS强制要求HTTPS连接",来提高数据传输之间的安全性,虽然之后又把时间推迟至待定,但...
    _Miyo阅读 867评论 1 2
  • 上一篇《iOS安全系列之一:HTTPS》被CocoaChina转载,还顺便上了下头条: 打造安全的App!iOS安...
    番薯大佬阅读 1,288评论 1 4
  • 欢迎大家来到简书故事写作投稿专场。 以下是简书正在征稿期的故事活动,选择你感兴趣的活动参加吧!扫描底部微信二维码还...
    简书茶馆叶老板阅读 15,084评论 47 201
  • 昨天下班回到家已经比平常晚了一个小时,寒风凛冽,单薄的毛衣 ,刺骨的冷,使我意识到深圳的冬天真的要在一月份如约而至...
    以浅阅读 283评论 0 4