最近在开发iOS 推送服务的时候遇到了一个问题。
问题是valueError,缘由是openssl版本太低解析Apple Push Service的.p8文件的时候没法解析python
ValueError: Could not unserialize key data
问题链接: https://github.com/pyca/crypt... nginx
为了解决这个问题我从端午节Google到今天,一直都没有完整的解决问题。都是wget openssl的压缩包而后解压,而后编译。虽然最后在命令行下面输入Openssl version 能获得正确的安装版本号可是python不管如何都是那个旧版本或者新版本可是出现各类问题。我猜想多是只安装了openssl新版本可是devel仍是旧版本。git
我就各类满世界找openssl-devel rpm安装的教程最后仍是各类错误我真的快气疯了。github
今天,我Google的时候看到了ubuntu16.x的版本内置了openssl1.0.2。我感受这个问题要解决了。最后经过升级ubuntu完成了python的Openssl依赖升级。可是过程也是比较曲折,由于要从新把旧的文件恢复(uwsgi + nginx 的相关文件)。反正最后推送服务终于work了,很开心。几天的通宵达旦找资料终于有了成果。ubuntu
最后进入virtulenv里面阿里云
python -c "import ssl; print ssl.OPENSSL_VERSION",
获得了新版本的openssl version,那种感受你不经历一次真的没法体会命令行
但愿遇到相关问题的人看到这边文章能让问题获得解决。其实主要问题就是阿里云的ubuntu版本没有及时更新让内置的openssl升级到1.0.2致使了这个问题。不过这个问题属于比较少见的,由于不是每一个我的开发者都用阿里云都用APNS。毕竟版本稳定才是一个商业公司的首要追求目标。code
The End.教程