PHP
cd到文件所在目录运行以下3条命令:
1. aps.cer是从developer.apple.com下载下来的推送证书
2. push.p12 是从钥匙串导出的证书,也就是打包证书,输入push.p12 的密码,还要设置导出的输出密码,两遍确认 一定要记住
3. 第三步合成的push.pem,两个pem 合并为最终php可以使用的pem推送证书。
1.openssl x509 -in aps.cer -inform der -out cert_php.pem
2.openssl pkcs12 -nocerts -out key_php.pem -in push.p12
3.cat cert_php.pem key_php.pem > push_php.pem
JAVA
1.根据苹果账号中下载的证书,把证书转换成PEM文件
openssl x509 -in aps.cer -inform DER -out aps_java.pem -outform PEM
2.通过苹果账号中下载的证书文件,导入到钥匙串中,再导出P12文件。这步是把P12文件转换成PEM文件
openssl pkcs12 -nocerts -out key_java.pem -in push.p12
3.合并文件成aps_java.p12,这也是最终给服务器的文件
openssl pkcs12 -export -in aps_java.pem -inkey key_java.pem -certfile CertificateSigningRequest.certSigningRequest -name "aps_java" -out aps_java.p12
注意: 如果报错”unable to load certificates”,把第三条命令的-certfile CertificateSigningRequest.certSigningRequest 去掉就好。
4.测试证书
测试证书是否正确:openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert aps_java.pem -key key_java.pem
如果是生产环境把sandbox去掉
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 完~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
其他:如果证书无法导入到我的证书中如下图,说明生成的XXXXX.certSigningRequest文件有问题(可能是重装系统或者删除了什么文件导致),需要重新生成。

生成xxx.certSigningRequest文件
