Python使用错误的OpenSSL

时间:2016-07-16 00:26:10

标签: python macos python-2.7 ssl openssl

OSX El Capitan V10.11.5

我试图解决此错误:

SSLError('bad handshake', Error([('SSL routines', 'SSL23_GET_SERVER_HELLO', 'sslv3 alert handshake failure')]

我认为这是https://github.com/superfell/Beatbox的原因:

  

请注意,如果您使用的是OSX,则捆绑的版本比旧版本的openSSL要高。如果您看到类似于ssl.SSLError的错误:[SSL:SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3警报握手失败或UNSUPPORTED_CLIENT:此组织中已禁用TLS 1.0。使用https连接到Salesforce时,请使用TLS 1.1或更高版本。你需要更新你的python和/或OpenSSL版本。

此问题在我的虚拟环境内外持续存在。在终端:

(virtualenv)sav> openssl version -v
OpenSSL 1.0.2g  1 Mar 2016

(virtualenv)sav> python -c "import ssl; print ssl.OPENSSL_VERSION"
OpenSSL 0.9.8zh 14 Jan 2016

在python终端中:

import ssl
ssl?

Type:        module
String form: <module 'ssl' from '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.pyc'>
File:        /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py
Docstring:

在/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py:

import _ssl             # if we can't import it, let the error propagate
from _ssl import OPENSSL_VERSION_NUMBER, OPENSSL_VERSION_INFO, OPENSSL_VERSION

_ssl是从〜/ Envs / virtualenv / lib / python2.7 / lib-dynload / _ssl.so导入的,这是一个C共享对象文件。然后我几乎碰壁了。

我认为如果我可以将ssl指向OpenSSL 1.0.2而不是0.9.8,我的错误将被修复,但我不确定在哪里进行更改。 你有没有处理过这件事?很高兴提供更多信息。

由于

0 个答案:

没有答案