由于SSL凭证TLSv1.0,点子失败

时间:2018-07-06 09:56:38

标签: python ssl pip

为另一个pip问题表示歉意,但我几乎尝试了所有其他线程,但到目前为止没有任何效果。 所以我遇到的问题是由于使用TLSv1.0,pip无法安装任何软件包 Could not fetch URL https://pypi.python.org/simple/pip/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:661) - skipping

我已经完成了curl的下载,下载了get_pip.py脚本,然后使用sudo python执行了它。

我尝试手动下载pip.tar.gz,解压缩并通过pip install ./pip.10.0.3

安装

安装后,我已经完成pip install --upgrade setuptools

我已经通过Homebrew安装了python。

pip --version pip 10.0.1 from /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip (python 2.7)

但是,每次尝试安装软件包时,每次仍然出现此TLSv1错误,并显示我正在使用TLS1.0

python2 -c "import urllib2,json; print(json.loads(urllib2.urlopen('https://www.howsmyssl.com/a/check').read())['tls_version'])" TLS 1.0

运行OSX 10.13.4

编辑: python2 -c "import ssl; print(ssl.OPENSSL_VERSION)" OpenSSL 0.9.8zh 14 Jan 2016

$ brew upgrade openssl Error: openssl 1.0.2o_2 already installed

EDIT2: 跟随这里的话题,最高的答案,并最终成功 Python referencing old SSL version

$ python -c "import ssl; print ssl.OPENSSL_VERSION" OpenSSL 1.0.2o 27 Mar 2018

1 个答案:

答案 0 :(得分:0)

$ brew upgrade openssl
Error: openssl 1.0.2o_2 already installed

这表明您的系统上确实安装了更新版本的openssl。

python2 -c "import ssl; print(ssl.OPENSSL_VERSION)"
OpenSSL 0.9.8zh 14 Jan 2016

但这表明Python的ssl模块是针对旧版本编译的。

我不熟悉Homebrew,但是根据Homebrew Github页面上的this issue,Homebrew现在默认使用自己的openssl版本。

基于此,解决此问题的完整步骤将是:

brew uninstall python2
brew update
brew upgrade openssl
brew install python2