iOS推送證書轉p12文件

爲了實現iOS推送,需要給服務器製作p12文件。創建證書的過程,就不寫了,可以去網上自己查一下有很多。

我們就從證書下載安裝到本地開始,進行描述。

1、下載cer文件aps_development.cer,安裝到本地

2、導出p12文件push.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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章