美文网首页互联网科技程序员
关于百度推送证书pem验证无效的问题

关于百度推送证书pem验证无效的问题

作者: mdiep | 来源:发表于2017-12-01 15:07 被阅读57次

    在这之前折腾过几次百度推送证书的问题,基本上按照百度文档都能搞定。由于苹果的推送证书的有效期限大概在一年左右,很久没有捣鼓这玩意了,最近收到了苹果的提示消息,说证书快要过期了,需要重新创建。也就需要从新走一遍当初的流程。

    大概的过程就是苹果开发者后台创建.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

    参考

    1. OpenSSL维基百科
    2. 百度推送证书无效

    IMG_2702.JPG

    相关文章

      网友评论

        本文标题:关于百度推送证书pem验证无效的问题

        本文链接:https://www.haomeiwen.com/subject/fykwbxtx.html