iOS两种推送方式的区别

APNs(Apple Push Notification service =APNs)是Apple推送通知服务。2016年的WWDC,苹果上线了token验证的推送方式,通过获得一个认证密钥(APNs Auth Key)去生成服务器端token,并且token非常容易生成,可以使用这些token令牌代替推送证书。一个认证密钥可用于多个应用程序并且永远不过期。每一个需要推送的App都需要配置推送证书的时代过去了。而且,一些第三方推送服务商,如极光、LeanCloud(官网强烈推荐的方式)目前已经升级支持APNs Auth Key Token模式。

1、认证方式

TLS(是“Transport Layer Security”的缩写),中文叫做“传输层安全协议”。新的APNs协议基于HTTP/2,旧推送是使用Universal Push Notification Client SSL 证书,新推送是使用Token认证。

1.1、基于证书的信任认证

建立基于证书的Provider信任连接

建立连接工作的步骤如下:

1)Provider通过TLS向APNs发起安全请求。

2)APNs返回一个证书给Provider。

3)Provider验证APNs的证书,验证通过后,返回Apple提供的证书(通过苹果开发者账号创建的推送证书)给APNs。

4)APNs验证Provider返回的证书,从而确认连接请求来自于合法的Provider并建立TLS连接。

上述步骤完成后,信任连接建立,Provider服务器可以发送基于证书的远程推送消息请求给APNs。

证书认证

1.2、基于Token的信任认证

基于Token的Provider信任连接

建立连接工作的步骤如下:

1)Provider通过TLS向APNs发起安全请求。

2)APNs返回一个证书给Provider。

以上两步完成后,信任连接建立,Provider服务器可以发送基于Token的远程推送消息请求给APNs。

3)Provider验证APNs的证书,然后Provider发送的每个消息请求必须携带上JWT 认证的 Token。

4)APNs验证Provider返回的证书,并返回请求的结果。

Token认证

2、推送服务配置过程

2.1、配置推送证书

1)在苹果开发者网站上创建两种 APNs 证书,有开发(Development)和生产(Production)两种。开发证书用于开发调试使用;生产证书既能用于开发调试,也可用于产品发布。选择该证书准备绑定的对应的 AppID。

新建证书
选择证书类型(开发或生产证书)
选择证书需要绑定的App ID

2)在电脑上打开系统自带的 KeychainAccess 创建 Certificate Signing Request文件。

创建CSR文件

3)回到浏览器中 CSR 上传页面,上传刚刚生成的后缀为 .certSigningRequest 的文件。

上传CSR文件

4)生成证书成功后,点击 “Download” 按钮把证书下载下来,是后缀为 .cer 的文件。

下载后缀为 .cer的证书

5)在电脑上双击证书后,会在“KeychainAccess”中打开,选择左侧“钥匙串”列表中“登录”,以及“种类”列表中“我的证书”,找到刚才下载的证书,并导出为 .p12 文件。

导出.p12 文件

6)将导出的 .p12 文件(开发和生产的)上传至第三方推送平台。

2.2、配置认证密钥(APNs Auth Key)

1)在苹果开发者网站上创建Keys,填写相应的名称之后,网站会生成包含APNs Auth Key的.p8密钥文件。

创建APNs Auth Key

2)将下载的的 .p8 密钥文件上传至第三方推送平台。

注:.p8 密钥文件只允许下载一次,需要妥善保管。

3、权限和使用期限

传统的推送证书,每个App需要单独配置两个(开发环境和生产环境)证书。推送证书的有限期为1年(生产的推送证书比开发的推送证书多一个月),过期之后需要重新配置。

新的token验证推送,一个认证密钥可用于多个App服务,而且永远不会过期。但是该密钥生成后,在网站上只允许下载一下,要保管好下载的.p8 密钥文件。

对于一个开发者账号管理着多个App,并且部分App迭代周期大于1年,这种新的推送认证方式大大地减少了管理证书人员的工作量。


参考文献:

WWDC2016-Session724(APNS新特性)

极光-iOS 证书设置指南

LeanCloud-iOS 推送证书设置指南

APNs Overview

基于HTTP/2与Token的APNs新协议

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

推荐阅读更多精彩内容