首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python请求上的SSL错误

Python请求上的SSL错误
EN

Stack Overflow用户
提问于 2016-07-20 19:59:29
回答 1查看 6.7K关注 0票数 3

我试图使用Python向API发出请求,但我得到了一个SSL错误。我到处找过了,但似乎找不到解决办法。

以下是我在虚拟环境中安装的版本:

代码语言:javascript
复制
Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 26 2016, 12:10:39) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>> ssl.OPENSSL_VERSION
'OpenSSL 0.9.8zg 14 July 2015'

我正在尝试使用我在这个博客上找到的代码

代码语言:javascript
复制
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.poolmanager import PoolManager
import ssl
import requests

class SSLAdapter(HTTPAdapter):
    '''An HTTPS Transport Adapter that uses an arbitrary SSL version.'''
    def __init__(self, ssl_version=None, **kwargs):
        self.ssl_version = ssl_version

        super(SSLAdapter, self).__init__(**kwargs)

    def init_poolmanager(self, connections, maxsize, block=False):
        self.poolmanager = PoolManager(num_pools=connections,
                                       maxsize=maxsize,
                                       block=block,
                                       ssl_version=self.ssl_version)

if __name__ == '__main__':
    url = 'https://msesandbox.cisco.com:8081/api/location/v2/clients?sortBy=lastLocatedTime:DESC'
    s = requests.Session()
    s.mount("https://", SSLAdapter(ssl.PROTOCOL_SSLv2))
    response = s.get(url) #line that trigger the mistake.
    print (response)

这是输出:

代码语言:javascript
复制
Traceback (most recent call last):
  File "/path/to/file", line 23, in <module>
    response = s.get(url)
  File "/Users/rafacarv/Environments/python2_7_12_cmx/venv/lib/python2.7/site-packages/requests/sessions.py", line 487, in get
    return self.request('GET', url, **kwargs)
  File "/Users/rafacarv/Environments/python2_7_12_cmx/venv/lib/python2.7/site-packages/requests/sessions.py", line 475, in request
    resp = self.send(prep, **send_kwargs)
  File "/Users/rafacarv/Environments/python2_7_12_cmx/venv/lib/python2.7/site-packages/requests/sessions.py", line 585, in send
    r = adapter.send(request, **kwargs)
  File "/Users/rafacarv/Environments/python2_7_12_cmx/venv/lib/python2.7/site-packages/requests/adapters.py", line 477, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590)

我还试图使用我在另一个问题上找到的建议,该建议包括使用问题包,但没有成功。

,我怎样才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-20 20:21:01

msesandbox.cisco.com:8081

此服务器只支持TLS 1.2,即不支持TLS 1.0或更高版本。

“OpenSSL 0.9.8zg,2015年7月14日”

这个OpenSSL版本还不支持TLS1.2。为此,您至少需要OpenSSL 1.0.1。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38489767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档