iOS 探讨之 百度推送 "证书无效" - Go语言中文社区

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 (钥匙串) 导出证书时,证书必须是收起状态(即不能显示专用密钥),否则不能通过验证      错误

参考资料
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/yanglei3kyou/article/details/78840222
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-08-25 12:51:50
  • 阅读 ( 2628 )
  • 分类:职场

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢