关于推送的那些事-P12篇

前段时间应公司要求,需要在应用中添加上推送通知,好长时间没碰推送了,然后自己大体上整理一些步骤和注意事项。(推送最重要的部分就是证书的制作)

首先要了解ios推送通知的工作机制,大概是下面这个节奏。。

Provider是指某个iphone软件的Push服务器,APNS是Apple Push Notification Service的缩写,即苹果服务器。

 

推送通知可以分为3个阶段

第一阶段:应用程序把要发的信息,目标设备(iphone等)的标示(token)打包,发送给苹果服务器(APNS);

第二阶段:APNS在自身已注册的Push服务的iphone列表中,查找响应表示的iphone,并将消息发送给iphone;

第三阶段:iPhone把发来的消息传递给相应的应用程序,并按照设定的弹出Push通知;

 

推送通知的步骤

1、应用程序注册消息推送。
2、iOS从APNS Server获取device token,应用程序接收device token。
3、应用程序将device token发送给PUSH服务端程序。
4、服务端程序向APNS服务发送消息。
5、APNS服务将消息发送给iPhone应用程序。

 

无论是iPhone客户端和APNS,还是Provider和APNS,都需要通过证书进行连接。

证书主要分成2种:如果后台是.net或者java等,使用P12证书。

         如果后台是php的话,则使用pem证书。

 

下面先介绍P12证书的制作,相对pem要麻烦点

一、CSR文件

1、生成Certificate Signing Request(CSR)

 

 

2、填写你的邮箱和常用名称,并选择保存到硬盘。

3,设置完成,点击继续。

这样我们就获得了Push.certSigningRequest文件。

 

二、p12文件

1、导出密钥。

 

2、输入你的密码,之后合成p12的时候要用到。

 

 

三、SSL certificate文件

1、用你付过费的帐号登录到iOS Provisioning Portal,并新建一个App ID,这个过程可以参考:iOS应用的真机调试,这样就会生成下面这条记录:

2、点击右侧的Configure:

3、点击Development Push SSL Certificate一行后的Configure:

4、点击Continue:

 

5、选择前面生成好的Push.certSigningRequest文件,点击Generate,出现如下所示的页面:

6、点击Continue:

7、点击Download,并将文件命名为aps_developer_identity.cer。

8、点击Done,你会发现状态变成了Enabled:

注意:有的App ID的Apple Push Notification service列是灰色的,并且不允许使用Configure按钮,这是因为APNS不支持带通配符的App ID。

 

到现在为止,我们已经生成了三个文件:

1、Push.certSigningRequest

2、Push.p12

3、aps_developer_identity.cer

 

下面就通过将终端命令来进行合适我们所需要的文件(linux命令不熟悉真是要了老命啊~)(中间有几个需要输入和设置密码的地方,一定要注意)

1、将aps_developer_identity.cer转换成aps_developer_identity.pem格式

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

2、将p12格式的私钥转换成pem

openssl pkcs12 -nocerts -out Push_Noenc.pem -in Push.p12  

3、创建p12文件

openssl pkcs12 -export -in aps_developer_identity.pem -inkey Push_Noenc.pem -certfile Push.certSigningRequest -name "aps_developer_identity" -out aps_developer_identity.p12  

 

posted @ 2013-05-28 16:16  怒放紫罗兰  阅读(281)  评论(0编辑  收藏  举报