我有一个旧的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