iOS推送证书转p12文件

为了实现iOS推送,需要给服务器制作p12文件。创建证书的过程,就不写了,可以去网上自己查一下有很多。

我们就从证书下载安装到本地开始,进行描述。

1、下载cer文件aps_development.cer,安装到本地

2、导出p12文件push.p12,不要点开导出。

      正常情况下使用这个p12就可以了,但是如果有特殊需求,就可以看下面的步骤了。

3、生成证书的pem文件

openssl x509 -inform der -in aps_development.cer -out cer.pem

4、生成证书的pem文件,这里会要求输入密码,就是导出时设置的密码

pkcs12 -nocerts -out key.pem -in push.p12

5、 合成pem

cat cer.pem key.pem > ck.pem

6、生成p12

openssl pkcs12 -export -in ck.pem -out pushbird.p12

生成成功了,就可以了。

 

但我执行的时候出现了一个问题:

unable to load private key

4497311340:error:09FFF06C:PEM routines:CRYPTO_internal:no start line:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-22.260.1/libressl-2.6/crypto/pem/pem_lib.c:683:Expecting: ANY PRIVATE KEY

解决方法:

再重新生成一下pem

openssl pkcs12 -in push.p12 -out key.pem -nodes

之后再执行5、6就可以了。成功后会要求输入两次密码。

 

附:

服务器是用php实现的用pem文件。

服务器使用java/c#实现的用p12文件。

开发环境验证pem方法

openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert ck.pem

正式环境验证pem方法

openssl s_client -connect gateway.push.apple.com:2195 -cert ck.pem

 

你可能感兴趣的:(iOS,iOS开发学习)