iOS开发之push证书制作流程

原创 2015年07月10日 15:55:36

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



版权声明:本文为博主原创文章,未经博主允许不得转载。

iOS Push 证书的重新生成

IOS的推送证书,有有效期限制,一般为一年。当我们证书过期的时候,就需要重新生成证书了。有一段时间没有上苹果网站了,昨天上去一看,此奥,改版了,下边我们将重新生成一个正式环境的push推送的证书。 ...
  • benbenxiongyuan
  • benbenxiongyuan
  • 2015年11月22日 09:56
  • 5699

iOS远端推送部署详解

最近几天被iOS的推送部署给搞懵了,现在特地整理下和大家进行分享。 iOS远端推送机制 APNS,全称为Apple Push Notification service,是苹果通知推送服务中最重...
  • App_IOS
  • App_IOS
  • 2015年09月29日 10:32
  • 1194

iOS最新极光推送详解

1.配置开发证书(得有开发者账号,个人,企业的都可以) 开发环境测试 在对 JPush iOS 开发环境进行测试前,请确保 3 个统一: App 是开发环境打包(开发证书 Devel...
  • mazegong
  • mazegong
  • 2016年04月27日 14:55
  • 5367

iOS push对应的p12证书制作方法

1.用钥匙串生成一个CertificateSigningRequest.certSigningRequest文件 2.新建appid 然后下载对应证书 3.双击ssl对应的证书 如:aps_d...
  • niejiafa_131
  • niejiafa_131
  • 2015年05月06日 14:04
  • 1164

iOS开发:创建推送开发证书和生产证书,以及往极光推送官网上传证书的步骤方法

创建推送开发证书和生产证书,以及往极光推送官网上传证书的步骤方法
  • CC1991_
  • CC1991_
  • 2017年12月12日 18:05
  • 616

iOS最新极光推送详解

1.配置开发证书(得有开发者账号,个人,企业的都可以) 开发环境测试 在对 JPush iOS 开发环境进行测试前,请确保 3 个统一: App 是开发环境打包(开发证书 Devel...
  • mazegong
  • mazegong
  • 2016年04月27日 14:55
  • 5367

iOS开发之push证书制作流程

push证书的制作流程一直没时间整理出一份详细的文档,今天乘着空闲时间将流程写一下,也算是让自己有个回顾。 废话不多说,咱们直接进入正题(本文中有些地方可能大家系统版本不一样,相应的选项位置可能有所不...
  • MarsCWD
  • MarsCWD
  • 2015年07月10日 15:55
  • 1737

APNS 推送证书生成(PHP和Java版)

以下只是合成命令,关于如何导出证书请自行搜索PHPcd到文件所在目录运行以下3条命令: 1. aps.cer是从developer.apple.com下载下来的推送证书 2. push.p12...
  • soindy
  • soindy
  • 2017年03月27日 13:39
  • 984

PKI证书生成流程

PKI证书生成流程 1.  单证书的签发1)  用户填写信息注册(或者由RA的业务操作员注册用户)。2)  用户信息传递到RA。3)  RA审核通过4)  用户请求发证5)  RA审核通过6)  用户...
  • xiaxiaorui2003
  • xiaxiaorui2003
  • 2008年09月05日 10:55
  • 3567

Push的原理及证书生成

网页转载自http://blog.163.com/juan_19886/blog/static/27830110201352224442764/ Push的原理及证书生成:http://zxs1...
  • u013773524
  • u013773524
  • 2016年04月05日 11:55
  • 502
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS开发之push证书制作流程
举报原因:
原因补充:

(最多只允许输入30个字)