ios 将APNs推送证书生成pem、P12给后台

首先到苹果后台

截屏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
将安装好的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/
找到你的openssl文件夹,我这里是存在两个openssl文件,我移除了@3
再次执行上面的指令,问题解决。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容