以前上传证书也遇到过这种类似的提示,按照官网配置流程经过一番折腾总能解决,然而这次折腾了大半天了。。。搞毛线啊,此事必有蹊跷。最终发现是我Mac系统版本(刚从10.12.6升到10.13)太高了,因为10.12.6的openssl版本是0.9.8zh,而10.13的系统openssl的版本是2.x.x,具体多少记不住了,公司电脑升级了,家里的还没升,百度推送不接受高于0.9.8的openssl生成的pem。找到原因就好办了,
今天做了一个集成百度云推送功能的demo,习惯性的上了苹果开发者中心配置了一系列的证书。 之后来到百度云推送的开发者中心,创建了应用,需要上传推送开发和生产证书。百度云上并没有写明该上传什么格式的证书,于是上传了我自己配的两个p12文件,不对?那就是把p12再转成pem再上传咯?于是照常使用openssl pkcs12 -in BDYDev.p12 -out BDYDev.pem -nodes 操作转换出了开发的和生产的两个pem文件。继续上传,咦还是不对。。 于是打开百度云的SDK中看他的说明,百度云SDK中“iOS证书指导.pdf”中跟我的做法没有出入啊。看样子还得上百度找答案。终于在网上找到了答案,根据网上的说法,百度云平台生成pem文件的openssl版本不得高于0.9.8 在终端输入命令 openssl --version,打印出了2.2.7具体解决做法:
1、到https://www.openssl.org/source/old/0.9.x/ 下载openssl 0.9.8zh版本
2、解压下载的压缩包
3、cd 你解压后的压缩包目录
4、执行命令
./Configure darwin64-x86_64-cc --prefix=/usr/local/openssl --shared
这一步可能会遇到没有权限创建openssl文件夹的问题,前往-可以手动到/usr/local/下创建一个openssl文件夹,然后在执行命令
5、执行命令
make && make install
6、openssl将会出现在这个路径下:/usr/local/openssl/bin/openssl,命令行查看下版本:
/usr/local/openssl/bin/openssl version
显示0.9.8zh,成功!!!
7、生成pem:
/usr/local/openssl/bin/openssl pkcs12 -in 你的p12名字.p12 -out 输出的pem名字.pem -nodes
8、丢给百度推送吧