关闭

iOS开发之push证书制作流程

标签: ios开发pushpush证书制作证书制作流程
1398人阅读 评论(0) 收藏 举报
分类:

push证书的制作流程一直没时间整理出一份详细的文档,今天乘着空闲时间将流程写一下,也算是让自己有个回顾。

废话不多说,咱们直接进入正题(本文中有些地方可能大家系统版本不一样,相应的选项位置可能有所不同,但选项的名称都是一样的,希望大家能注意到,我用的是OS X 10.11 beta版 ^_^)


一、从证书颁发机构请求证书

在制作证书之前,需要先从证书颁发机构获取.CSR格式证书,该证书只需生成一次,后续不需要再生成,直接拿来用。

打开钥匙串工具(Finder -> 应用程序 -> 实用工具 -> 钥匙串访问),打开后点击顶部菜单栏““钥匙串访问”出现如下界面,选择 证书助理  ->  从证书颁发机构请求证书 



并且在用户电子邮件地址常用名称处填上相应信息(这两栏不需要硬记,后续不需要使用到,只要能通过审核就行),再点击下方的存储到磁盘,然后点击界面下方的继续


将文件名修改成“push.certSigningRequest”,后缀不变




之后你就能在桌面上看到我们刚才生成的.CSR证书了。这样第一步就完成了。


二、创建物理文件夹

这一步纯(处)属(女)个(座)人(洁)爱(癖)好(啦),为了比较清晰直观的反应文件结构以便后续使用,我们先在桌面上创建一个文件夹,名字命名为10000710(假设我们以Bundle Id后缀为10000710的App制作push证书),物理文件夹结构如下,其中10000710证书文件夹中的测试和正式文件夹用于存放我们最终生成的push证书了。



而development文件夹中结构和production文件夹中结构一致,其中的out文件夹目前为空的



好了,那么我们的前期工作就完成了。接下来才是重点,废话不多说,我们继续吐舌头


三、.cer格式文件申请

接下来打开Safari浏览器(这里要注意下,我在Mac电脑上用Google浏览器申请证书会遇到界面刷新不出来的问题,不知道大家有没有遇到过,所以我个人建议大家用Mac自带的Safari浏览器微笑),输入开发者中心网址:https://developer.apple.com   打开后点击右上角的Member Center 进入开发者中心



再输入相应的开发者账号登录



点击Certificates, Identifiers & Profiles进入下一个界面后再点击左侧的Identifiers选项,进入到开发者中心。选择左侧Identifiers里的App IDs,再选择右边界面的右上角的加号,添加一个新的App ID,在Name和Bundle ID中输入相应内容



再滑动到底部,再底部的选项中勾选Push Notifications一栏并点击继续并提交



提交成功之后,然后再选择左侧Identifiers里的App IDs,进一步生成.cer证书,在对应的右侧找到刚才生成的App IDs并点击展开



点击下方编辑Edit之后滑到底部的Push Notifications一栏,选择第二个Production SSL Certificate里的创建证书选项并点击继续



选择刚才生成的.CSR格式证书上传



选择production文件中的.CSR证书,并点击Generate之后制作一个正式版的car证书,然后将它下载并且双击装入钥匙串(注,这里我省略了测试版的push证书制作过程,考虑到平常都是用正式地址测的push推送通知,又因为它与production正式版的制作过程基本一样,所以就不再重复说明了)。这样我们的.cer格式的证书就申请完成了。



三、push证书制作

终于到了最后一步了,大家看到我用了“终于”。。。好吧,我已经不耐烦了。废话不多说,咱们继续看。

经过第二步之后,我们打开钥匙串,会发现钥匙串中多了一项,好吧涂的有点乱安静



这就是我们刚才从开发者中心下载的.cer文件装入钥匙串中之后的结果。

接下来我们将它从钥匙串导出,右键并选择导出,并且命名为production,导出到刚才创建的物理文件夹中production



导出时需要设置密码,该密码与之后生成push证书有密切关系,所以一定要牢记,这边为了方便起见,就用了123456作为密码



再将第二步中下载的.cer文件放入production文件夹中,这时production文件夹中应该就包含了三个证书以及一个out空文件夹



好了,那么接下来我们开始动手生成push证书了得意


首先打开终端   Finder  ->  应用程序  ->  实用工具  ->  终端


进入到production文件夹所在目录中(在终端中键入cd production文件夹路径按回车即可)


输入以下命令并按回车键用来生成aps_production.pem文件:


openssl x509 -in aps_production.cer -inform DER -out out/aps_production.pem -outform PEM


这是你会发现,你的production文件夹中的out文件夹中多了一个aps_production.pem的文件。


接下来再在终端中输入以下命令并按回车用来生成production.pem文件:


openssl pkcs12 -nocerts -out out/production.pem -in production.p12


这时你会看到终端上面会出来一个提示,需要你输入密码,这个密码就是你刚才从钥匙串中导出文件是所设置的密码(所以刚才导出时的密码需要牢记,这里会用到,我这边目前是  123456),并且该密码以密文形式输入,看不到它是否输入,只有输入完毕后按回车才能看到结果,并且该密码需要输入三次,当出现以下提示时,说明生成文件成功(注:这里输入错误也会生成production.pem文件,如果输入错误需要先将out文件夹中的production.pem文件删除,然后在终端重新执行该命令才行,不然会影响最后的push证书的生成)。



最后再在终端中输入最后一个命令行,用于生成最终的正式版push证书。(其中xxx为Bundle ID的前缀)

sudo openssl pkcs12 -export -in out/aps_production.pem -inkey out/production.pem -certfile push.certSigningRequest -name "10000710" -out out/xxx.xxxx.xxx.10000710.p12


输入以上命令回车后,会看到他会提示你输入Password ,这个可不是和上一个命令一样,输入之前设置的密码了,这个是需要输入用户电脑的开机密码的。。。(不要输错被骗了哦)




输入完之后又会提示你输入密码,这时候的才是刚才设置的密码了。(骂人怎么这么多密码要输,好烦躁)这个密码与第二个命令行一样,也是需要输入三次才行,成功之后就会在out文件夹中看到最终的BOSS——push证书了,如果其中输错一次,那么,不好意思,删掉重来吧!大哭  成功之后,会是这样的,没有任何提示(细心地会看到,我在输入开机密码的时候也输错了两次,好吧,密文太可怕了,总是输错大哭)。



最后再回过来看下out文件夹中的文件,其中红框框起来的.p12格式的文件才是我们最后需要的push推送证书了,将它打包发给服务端的人员用于push推送绑定,这样客户端就能收到相应的push推送啦微笑




另外测试版的push证书生成过程我就不再展开了,过程和正式版的基本一致。况且平常不怎么使用到测试版的,如果有需要的可以自行研究微笑



总结:苹果生成push推送证书的过程比较繁琐,尤其是最后终端上的操作,我一开始也被坑成狗啊大哭,不过这也是开发必须要做的事情呀,只能多练练,熟能生巧。


好了,push证书的制作流程就讲到这里吧吐舌头,上面写的有什么不对的地方欢迎大家指出纠正,另外对于上面我讲的步骤有什么不懂地方随时可以问哈大笑,互相学习。



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1576次
    • 积分:38
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档