首先到苹果后台

截屏2023-10-20 14.33.42.png
1.创建好Distribution的.cer,下载后双击安装。
2.再去创建APNs的.cer,下载后双击安装。(否则下载的.cer无法导出为.p12)
3.打开钥匙串访问,左侧选择登录

截屏2023-10-20 14.39.41.png
右侧选证书
截屏2023-10-20 14.40.10.png

截屏2023-10-20 14.40.10.png
将安装好的APNs 证书 右键导出为.cer 到操作目录命名:aps.cer ,在次操作导出为.p12文件到操作目录命名:push.p12。
(导出时弹出的设置密码 直接回车 没有密码)。
打开终端,cd到操作目录
执行命令-> 生成证书的pem文件
openssl x509 -inform der -in aps.cer -out cer.pem
执行命令-> 生成证书的pem文件,这里会要求输入密码,直接回车2次
openssl pkcs12 -in push.p12 -out key.pem -nodes
执行命令-> 合成pem文件
cat cer.pem key.pem > ck.pem
执行命令-> 生成p12
openssl pkcs12 -export -in ck.pem -out pushbird.p12
最后将目录下的ck.pem 或者 pushbird.p12 发送给后台人员,完毕。
附:
服务器是用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
参考作者,致谢。
问题处理
最新报错

截屏2024-03-27 17.31.49.png
Error outputting keys and certificates
80FB8E5EF87F0000:error:0308010C:digital envelope routines:inner_evp_generic_fetch:unsupported:crypto/evp/evp_fetch.c:355:Global default library context, Algorithm (RC2-40-CBC : 0), Properties ()
在执行openssl pkcs12 -in push.p12 -out key.pem -nodes时,终端报错
问题解决
你的本地openssl版本太高,点击访达,前往文件夹
/usr/local/Cellar/