本文主要记录制作服务器(例如php)利用pem推送服务

基本流程:

1.利用“钥匙串”请求证书

2.创建证书,下载cer文件

3.双击安装下载的cer文件后,导出p12证书

4.利用命令行转换pem文件

5.如果需要转换为p12

6.验证证书是否可用

具体步骤:

1.利用钥匙串请求证书

image

Apple建议这样填写

image

保存,得到”CertificateSigningRequest.certSigningRequest”文件。这是请求所有证书的基础。

2.创建证书,下载cer文件

进入苹果开发者中心:https://developer.apple.com/cn/ Certificates, IDs & Profiles

image

image

创建 “iOS Development” 和 “iOS Distribution” 以及“Identifiers->App IDs”证书后,才可以创建推送证书。

创建方法类似,此处省略800字。

把做的证书下载下来。

image

分别得到发布开发cer和发布cer

“aps_development.cer” 和 “aps.cer”

3.双击安装下载的cer文件后,导出p12证书

image

分别导出开发证书和发布证书

“Apple Development IOS Push Services- com.in.inlan.p12” 和 “Apple Push Services- com.in.inlan.p12”

4.利用命令行转换pem文件

1). 先把下载下的cer转换为pem

1
2
3
$ openssl x509 -inform der -in aps_development.cer -out devPushChatCert.pem

$ openssl x509 -inform der -in aps.cer -out PushChatCert.pem

2). 将钥匙串中的p12转换成pem

1
2
3
$  openssl pkcs12 -nocerts -out devPushChatKey.pem -in Apple\ Development\ IOS\ Push\ Services-\ com.in.inlan.p12

$ openssl pkcs12 -nocerts -out PushChatKey.pem -in Apple\ Push\ Services-\ com.in.inlan.p12

3). 将上面生成的2中pem转为一个pem

1
2
3
$ cat devPushChatCert.pem devPushChatKey.pem > dev_ck.pem

$ cat PushChatCert.pem PushChatKey.pem > ck.pem

5.如果需要转换为p12

1
2
3
$ openssl pkcs12 -export -in dev_ck.pem -out dev_pushcer.p12

$ openssl pkcs12 -export -in ck.pem -out pushcer.p12

6.验证证书是否可用

整理有个写好的脚本可用(内部替换所需deviceToken即可)

push demo

1
$ php ios-push.php