公钥生成
推送证书cer转pem
openssl x509 -in aps_development.cer -inform der -out apns-dev-cert.pem
也可以用钥匙串中证书导出p12,然后转为pem公钥
openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-develop.p12
私钥生成
如果验证时出现
unable to load client certificate private key file
140735697032136:error:0906D06C:PEM routines:PEM_read_bio:no start line:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-22.50.2/libressl/crypto/pem/pem_lib.c:704:Expecting: ANY PRIVATE KEY
需要重新转换私钥
openssl pkcs12 -in push.p12 -out apns-dev-key.pem -nodes
或者 openssl pkcs12 -nocerts -out apns_dev_key.pem -in apns_dev_key.p12
合并
cat apns-dev-cert.pem apns-dev-key.pem > push.pem
验证
与 APNs 之间是加密的连接,因此需要使用证书来加密连接。每个的推送环境有自己单独的推送证书,即开发证书和生产证书。
在将证书最终转为 pem 格式后,可通过与 APNs 连接来测试证书是否有效。
开发环境:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert MyApnsDev.pem
生产环境:
openssl s_client -connect gateway.push.apple.com:2195 -cert MyApnsPro.pem
快捷方法
在推送证书制作已经完成。下载并双击用“钥匙串访问” 程序打开后,在左边一栏,上面选择登录,下面选择证书,然后选择刚刚打开的证书,切记不要展开它,直接右击导出p12,将文件保存为 .p12 格式
导出p12文件
最后进入终端,到证书目录下,运行以下命令将p12文件转换为pem证书文件:
openssl pkcs12 -in MyApnsCert.p12 -out MyApnsCert.pem -nodes
然后可以直接验证
显示
大功告成!
网友评论