您的位置:首页 > 移动开发 > IOS开发

从零开始创建iOS远程推送证书

2016-04-10 00:07 561 查看

第一步

登录Apple Developer后台,左侧选择AppIDs,开始新建AppID.



点击右上方的➕号图标新建AppID

第二步

在App ID Description栏输入自己的对该ID的描述信息.相当于取个名字而已.
App ID Prefix选择你开发者账号对应的TeamID选项值.
App ID Suffix可以是明确指定的AppID值也可以是通配符的值,一般如果用于某一个App的话,我们设置为确定值的一个ID,在Bundle ID那一栏输入一个反域名格式的字符串作为我们的App ID的一部分. 这个地方应该和Xcode项目中的BundleID设置值一致.
App Services 这里勾选你的App所需要的一些功能(按需勾选).



设置App ID的详细配置信息

第三步

设置完后继续,进入到确认界面, 确认无误后点击
Register
进行注册.



App ID的信息以及所需服务的确认

第四步

上一步确认无误注册成功之后的信息一览表:



App ID注册新建成功,信息一览无余.

第五步

App注册新建成功后,我们就可以在App IDs列表中查看到.

如图,刚刚注册的App ID的name是
TeachDemo
,ID是
com.diveinedu.teachdemo




App ID列表中找到刚刚注册的App ID

第六步

双击App ID的name可以展开查看该AppID的详细信息,点击
Edit
还可以再次编辑.



在AppID列表中展开某个AppID的具体信息

第七步

上一步点击
Edit
进入再次编辑界面,可以对该AppID进行详细的服务功能设置.找到
Push Notification
并阅读理解关于推送消息的资料.

选择对应需要的证书进行创建.



根据需要,选择开发版或者生产版的推送证书进行创建

第八步

不管上面一步是选择开发版还是生产版的推送证书创建,都会到样一个界面,该界面详细告诉我们如何去自己电脑创建一个证书签名请求文件.



证书签名请求文件创建步骤指引

第九步

根据上一图中的步骤指引,打开OS X系统上的钥匙串访问程序,在菜单中,找到
证书助理
-->
从证书颁发机构请求证书...
.



选择钥匙串访问菜单准备创建证书签名请求

第十步

先填写证书签名请求的信息,邮件地址填写自己的邮件地址,如果可以,强烈建议写你的开发者账号对应的邮件地址,常用名称可以写你对应AppID应用的名字以用来做区别.
我们需要把该签名请求信息保存到文件,故勾选请求类型是
存储到磁盘
.



填写邮件地址和常用名称

第十一步

信息填写配置完毕后,点击存储,就会弹出对话框让你输入保存的文件名和文件的保存位置.这个根据自己确定文件名和位置.只要在后面步骤能够记得位置,找的到该文件就OK.



设置文件名和保存位置

第十二步

点击存储,正式把文件存储到本地磁盘中.



证书签名请求文件保存成功

第十三步

这时候,切换回到之前打开开发者后台的浏览器页面,在第八步的位置点击继续,将会进到此页面.
打开并选择刚刚那个文件.



选择证书签名请求文件

第十四步

然后,点击继续,上传证书签名请求文件



正式上传

第十五步

上传完成之后,苹果开发者后台服务器就会为我们签名并创建一个用于远程推送的证书文件.
我们只需要点击下载按钮就可以把证书文件(这里是开发版)下载回来.



下载生成成功的推送证书文件

第十六步

浏览器点击下载后一般下载保存在用户目录下的
Download
子目录下,可以把该文件移动到合适的其他目录下,

我们查看证书名是
aps_development.cer
,从文件名可以看出这个开发版的推送证书.
如果是生成版的推送证书的话,文件名是
aps_production.cer
.



看看开发版的推送证书文件

第十七步

双击下载回来的推送证书文件,一般会自动用钥匙串访问程序打开,并弹出添加证书到当前系统的界面.你直接点击添加就可以.(由于权限原因,点击添加后可能会询问你当前用户的密码)



双击证书文件进行添加

第十八步

添加到系统钥匙串中后,我们可以在列表中看到刚刚那个证书的信息,展开后我们还可以看到里面包含着一个专用密钥,该密钥就是用来和苹果推送服务器进行安全链接的.



找到刚刚加入系统钥匙串中的证书

第十九步

选择该证书,右键,选择 导出xxxxx, 准备从系统钥匙串中导出证书(内含私钥)到p12格式文件.



准备导出远程推送证书

第二十步

填写导出后的文件名以及存储位置,注意下面的文件格式务必为个人信息交换(.p12)格式.



把证书从钥匙串访问程序中导出为p12文件

第二十一步

确定存储进行导出后,系统为了安全起见,还可以对该p12文件设置一个密码进行保护,以后读取这个p12文件信息的时候都需要验证该密码.



设置p12文件的保护密码

第二十二步

设置p12文件保护密码后点击存储,就这样,导出成功结束.

到这里,导出的这个
aps_development.p12
文件就是我们所需要传到第三方推送服务商后台的推送证书文件.



成功导出了p12格式的远程推送证书文件

后记

此教程是为了戴维营教育iOS开发全栈课程内容中的Swift开发后台推送服务器做前提准备.

对应生成版的推送证书也是同样的步骤,唯一的不同就是在 第七步 选择创建生产版还是开发版的推送证书.

我们生成的开发版推送证书只能用开发测试过程中的真机测试推送业务.

如果App上架了,那么应该配置生产版的推送证书并上传至第三方推送服务商后台.

如果没有使用第三方推送服务商的免费服务.而是开发者自己或者公司团队自己开发的推送后台.那么我们可以根据情况处理一下我们下载的推送证书以及生成的p12格式的文件,转换为PEM格式的文件给自己的后台程序的OpenSSL的API进行使用.

我们下载的推送证书默认的名字一般就是:
aps_production.cer
或者
aps_development.cer
,

那么不管是开发版还是生产版,这里我把要处理的证书文件名用
cert.cer
代替.

然后为其导出的p12文件名用
key.p12
代替.

可以用下面的openssl命令进行转换为pem格式:

$ openssl x509 -in cert.cer -inform DER -outform PEM -out cert.pem
$ openssl pkcs12 -in key.p12 -out key.pem -nodes


然后可以继续测试这些证书是否可以成功用来链接苹果的推送服务器.

production(生产版)
$ openssl s_client -connect gateway.push.apple.com:2195 -cert cert.pem -key key.pem


sandbox(开发版)
$ openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert cert.pem -key key.pem


文/戴维营教育(简书作者)

原文链接:http://www.jianshu.com/p/8b6ad7294e71

著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: