解决python openssl版本过低的坎坷路程

原因

最近在开发iOS 推送服务的时候遇到了一个问题。
问题是valueError,原因是openssl版本过低解析Apple Push Service的.p8文件的时候无法解析

ValueError: Could not unserialize key data

问题连接: https://github.com/pyca/crypt...

为了解决这个问题我从端午节Google到今天,一直都没有完整的解决问题。都是wget openssl的压缩包然后解压,然后编译。虽然最后在命令行下面输入Openssl version 能得到正确的安装版本号但是python无论如何都是那个旧版本或者新版本但是出现各种问题。我猜测可能是只安装了openssl新版本但是devel还是旧版本。

我就各种满世界找openssl-devel rpm安装的教程最后还是各种错误我真的快气疯了。

解决

今天,我Google的时候看到了ubuntu16.x的版本内置了openssl1.0.2。我感觉这个问题要解决了。最后通过升级ubuntu完成了python的Openssl依赖升级。但是过程也是比较曲折,因为要重新把旧的文件恢复(uwsgi + nginx 的相关文件)。反正最后推送服务终于work了,很开心。几天的通宵达旦找资料终于有了成果。

最后进入virtulenv里面

python -c "import ssl; print ssl.OPENSSL_VERSION",

得到了新版本的openssl version,那种感觉你不经历一次真的无法体会

Final

希望遇到相关问题的人看到这边文章能让问题得到解决。其实主要问题就是阿里云的ubuntu版本没有及时更新让内置的openssl升级到1.0.2导致了这个问题。不过这个问题属于比较少见的,因为不是每个个人开发者都用阿里云都用APNS。毕竟版本稳定才是一个商业公司的首要追求目标。

The End.

你可能感兴趣的:(openssl,ios,linux,ubuntu,python)