我在一个旧的NAS设备上有一个Dropbox上载脚本,最近我遇到了以下错误
SSL证书错误:[errno 1]_ssl.c:504:错误:0D0890A1:ASN1编码例程:ASN1_验证:未知消息摘要算法
我想这是因为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

最佳答案

几天后就开始工作了。Mac OS X El Captian或更高版本

 sudo rm -rf /Library/Frameworks/Python.framework/Versions/2.7
 sudo rm -rf "/Applications/Python 2.7"
 cd /usr/local/bin/
 ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' | awk '{print $9}' | tr -d @ | xargs rm
 brew uninstall python
 brew uninstall openssl
 brew link --force openssl

现在使用BREW再次安装python和openssl。
 brew install openssl
 brew install python --with-brewed-openssl

将以下内容添加到Mac上~/.bash_配置文件的路径中
 vi ~/.bash_profile
 export PATH=/usr/local/opt/openssl/bin:/usr/local/opt/python/libexec/bin:$PATH

重新启动终端
 python --version (verify if it is picking up the right version)
 openssl version -a (verify if it is picking up the right version)
 python -c "import ssl; print ssl.OPENSSL_VERSION"

(注意:如果安装了python3,则必须更新内联编译器步骤中的print语法)
python -c "import ssl; print(ssl.OPENSSL_VERSION)"

应该提供最新版本的open ssl版本

09-10 07:22
查看更多