pem文件是服务器向苹果服务器做推送时候需要的文件,主要是给php向苹果服务器验证时使用,(我用在百度推送的时候)下面介绍一下pem文件的生成。
1、打开钥匙串,选择需要生成的推送证书(不需要把证书下拉展开)
选择相应证书
2、将Certificate和Private key导出得到 .p12 文件
2.1、生成证书apns_dev_cert.p12的p12文件,按照下面操作导出p12,桌面对应生成apps_dev_cer.p12文件
导出相应的 p12 文件
导出证书Cer的p12文件,设置密码
2.2、生成证书对应的秘钥apns_dev_key.p12的p12文件,按照下面操作导出p12,桌面对应生成apps_dev_ker.p12文件。
导出相应证书Key的p12文件
导出证书Key的p12文件,设置密码
3、将apns_dev_cert.p12和apns_dev_key.p12文件对应转化为apns_dev_cer.pem和apns_dev_key.pem文件
3.1、打开终端,输入cd Desktop
3.2、将apns_dev_cert.p12文件转换为pen格式,输入openssl pkcs12 -clcerts -nokeys -out apns_dev_cert.pem -in apns_dev_cert.p12
1>. 要求输入一个密码,输入.(此处为导出p12的保护密码),此时桌面会生成一个apns_dev_cert.pem文件
3.3、将apns_dev_key.p12文件转换为pen格式,输入openssl pkcs12 -nocerts -out apns_dev_key.pem -in apns_dev_key.p12
1>. 要求输入一个密码,输入.(此处为导出p12的保护密码)
2>. 要求验证保护密码,再一次输入,此时桌面会生成一个apns-dev-key.pem文件
4、将apns_dev_cer.pem和apns_dev_key.pem文件合成为apns_dev.pem文件,此文件将给php后台用于连接苹果服务器时需要使用,在终端继续输入:cat apns_dev_cer.pem apns_dev_key.pem > apns_dev.pem,此时桌面生成一个apns_dev.pem
最终发现是我Mac系统版本(刚从10.12.6升到10.13)太高了,因为10.12.6的openssl版本是0.9.8zh,而10.13的系统openssl的版本是2.x.x,具体多少记不住了,公司电脑升级了,家里的还没升,百度推送不接受高于0.9.8的openssl生成的pem。
1、到https://www.openssl.org/source/old/0.9.x/ 下载openssl 0.9.8zh版本
2、解压下载的压缩包
3、cd 你解压后的压缩包目录
4、执行命令
这一步可能会遇到没有权限创建openssl文件夹的问题,可以手动到/usr/local/下创建一个openssl文件夹,然后在执行命令
5、执行命令

6、openssl将会出现在这个路径下:/usr/local/openssl/bin/openssl,命令行查看下版本:
显示0.9.8zh,成功!!!
7、生成pem:
8、丢给百度推送吧
最后为方便使用,我已经将生成好的0.9.8zh版openssl上传,可以直接下载使用:openssl.zip
在终端测试:openssl s_client -connectgateway.sandbox.push.apple.com:2195-cert apns_dev_cert.pem -key apns_dev_key.pem
终端最后显示以下内容,表示配置pem文件成功,
………………………..
如果上面这种方式不行,可以直接采用下面这种方式(我是用下面的这个方式上传百度推送证书验证成功的)
打开终端,输入cd Desktop回车
openssl pkcs12 -in aps_developer_identity.p12 -out MyApnsCert.pem -nodes这个命令。aps_developer_identity.p12 是你导出的p12证书名字,MyApnsCert.pem是你需要生成的pem文件名字。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/170587.html