1. 在Mac上啓動Keychain助手,而後在login keychain中選擇 Certificates分類。你將看到一個可展開的「Apple Development Push Services」證書。app
2. 選擇該證書,右擊「Apple Development Push Services」 > Export 「Apple Development Push Services: xxx」。保存爲 apns-dev-cert.p12文件。spa
3. 展開「Apple Development Push Services」會看到一個類別爲「Private Key」的私鑰,對該私鑰作一樣操做,保存爲 apns-dev-key.p12 文件。code
4. 須要經過終端命令將這些文件轉換爲PEM格式:orm
openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12 openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12
5. 若是你想要移除密碼,要麼在導出/轉換時不要設定或者執行:blog
openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem
6. 最後,你須要將鍵和許可文件合成爲apns-dev.pem文件,此文件在鏈接到APNS時須要使用:ssl
cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem
7. 驗證pem有效性(驗證生產證書時將gateway.sandbox.push.apple.com替換爲gateway.push.apple.com)get
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key.pem
8. 若是使用p12導出pem時發生相似如下的錯誤:asn1 encoding routines:ASN1_get_object:header too long,請經過Keychain導出成cer文件,再執行命令轉爲pem:openssl
openssl x509 -in apns-dev-cert.cer -inform DER -out apns-dev-cert.pem -outform PEM