iOS 探讨之 百度推送 "证书无效"

阐述
最近有许多证书将要过期,趁着有时间赶紧将公司的证书全部梳理一遍。在对百度推送进行证书更新时,出现了“证书无效”的错误(去年更新的时候也没出现问题),折腾好几天才解决掉。记录一下,并辟谣许多错误的说法(不让大家走弯路)。

探讨
首先感谢一下 “控记我记几”,在他的博文中所提出的解决方法很有效果。
- openssl 版本问题
博主指出百度推送不接受 openssl 版本高于0.9.8 所生成的pem, 查了一下现在的系统是macOS High Sierra 10.13.2,opensll 版本为 2.2.7。

故感觉问题可能出在这个地方。
解决方法:
1 至 openssl 官网下载0.9.8zh版本  https://www.openssl.org/source/old/0.9.x/
2 解压下载的压缩包
3 通过Terminal (终端) 进入刚才解压目录
4 Terminal (终端) 执行命令
   ./Configure darwin64-x86_64-cc --prefix=/usr/local/openssl --shared  
Tip: 这一步执行完后手动到 /usr/local/ 目录下查看是否有一个openssl 文件夹,如果没有则说明当前用户没有权限来创建 openssl 文件夹,此时我们手动在这个目录下创建 openssl 文件夹,然后再次执行上面的命令
5 Terminal (终端) 执行命令
make && make install
6 此时 openssl (Unix可执行文件) 会出现在 /usr/local/openssl/bin/openssl 目录下, 我们用命令查看一下当前 openssl 版本
  /usr/local/openssl/bin/openssl version  

7 执行百度推送所使用的命令
   /usr/local/openssl/bin/openssl pkcs12 -in MyApnsCert.p12 -out MyApnsCert.pem -nodes
Tip: openssl 必须使用刚才所创建的 0.9.8zh 版本

辟谣
经过实际测试,发现以下几个说法不正确,大家勿信
说法一
名称为中文的P12所生成的Pem 不能通过验证                                                                                    错误
说法二
P12名称必须为 MyApnsCert.p12 且Pem名称必须为 MyApnsCert.pem, 否则不能通过验证                      错误
说法三
Keychain Access (钥匙串) 导出证书时,证书必须是收起状态(即不能显示专用密钥),否则不能通过验证      错误

参考资料
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值