我有一箇舊的NAS設備,我有一個Dropbox的上傳腳本,最近我已經收到以下錯誤的Python引用舊SSL版本
SSL certificate error: [Errno 1] _ssl.c:504: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm
我認爲這是由於OpenSSL的上是過時盒子
因此我下載openssl,從源代碼構建它並安裝它,現在當我運行下面的代碼時,它會顯示爲正確更新。
openssl version
OpenSSL 1.0.1h 5 Jun 2014
但它會出現Python仍然引用舊版本,我會如何更新?
python -c "import ssl; print ssl.OPENSSL_VERSION"
OpenSSL 0.9.7m 23 Feb 2007
哦,我的,0.9.7 ...你需要遷移到0.9.8。 1.0.1 *不是*二進制兼容。 – jww
您需要針對較新的OpenSSL重新編譯Python。 –
@Paul - 靜態地執行Python鏈接?我認爲它使用動態鏈接到OpenSSL。從'Modules/Setup.dist':'-L $(SSL)/ lib -lssl -lcrypto'。如果它的動態,他只需要設置'LD_PRELOAD',指向0.9.8共享對象,然後啓動Python。 – jww