在这之前折腾过几次百度推送证书的问题,基本上按照百度文档都能搞定。由于苹果的推送证书的有效期限大概在一年左右,很久没有捣鼓这玩意了,最近收到了苹果的提示消息,说证书快要过期了,需要重新创建。也就需要从新走一遍当初的流程。
大概的过程就是苹果开发者后台创建.cer证书 -> 安装到本地key chains,并导出.p12个人信息交换文件 -> 在openssl工具下转换为.pem证书。
// cd 到你存放.p12证书的目录下
openssl pkcs12 -in p12证书名字.p12 -out 输出的pem名字.pem -nodes
导致.pem证书验证失效的原因
由于百度推送使用的openssl是较老的版本(0.9.8zh),而当前我的mac系统已经升级,其中openssl的版本已经是LibreSSL 2.2.7。利用2.2.7版本生成的.pem证书,在百度推送平台无法被识别。
解决方案:不能改变别人,只能改变自己。主动安装一个0.9.8zh版本的openssl
安装0.9.8zh openssl
到https://www.openssl.org/source/old/0.9.x/ 下载openssl 0.9.8zh版本
解压下载的压缩包
在terminal中,cd到解压后的文件夹中
执行如下命令
./Configure darwin64-x86_64-cc --prefix=/usr/local/openssl --shared
这一步可能会遇到没有权限创建openssl文件夹的问题,可以手动到/usr/local/下创建一个openssl文件夹,然后在执行命令(我目前没有碰到,估计是由于在我的系统中已经安装过openssl)
执行命令
make && make install
这个过程会需要一点点时间,估计一分钟左右
安装成功后,openssl在这个路径下面: /usr/local/openssl/bin/openssl,可以利用version命令查看版本号
/usr/local/openssl/bin/openssl version
显示0.9.8zh,代表成功
cd到你的证书目录下,生成pem文件
/usr/local/openssl/bin/openssl pkcs12 -in 你的p12文件.p12 -out 生成的.pem文件.pem -nodes
参考
IMG_2702.JPG
网友评论