最近在開發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.教程