首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UnificationEngine:无法使用TLS或SSL通过Python发送请求。

UnificationEngine:无法使用TLS或SSL通过Python发送请求。
EN

Stack Overflow用户
提问于 2016-09-09 16:10:55
回答 1查看 156关注 0票数 0

我正在尝试使用Raspberry Pi 3 (Model B)通过Python向统一引擎发送请求。在禁用SSL/TLS验证的情况下,请求正常发生,但我需要使用SSL/TLS。

以下代码旨在强制会话为了向UnificationEngine发送TLSv1请求而使用Python:

代码语言:javascript
复制
class ForceTLSV1Adapter(HTTPAdapter):
    def init_poolmanager(self, connection, maxsize, block=False):
        self.poolmanager = PoolManager(num_pools=connection,maxsize=maxsize,block=block,ssl_version=ssl.PROTOCOL_TLSv1)

def proxy_manager_for(self, proxy, **proxy_kwargs):
    proxy_kwargs['ssl_version'] = ssl.PROTOCOL_TLSv1
    return super(ForceTLVS1Adapter, self).proxy_manager_for(proxy, **proxy_kwargs)

----Some Code here----

s = requests.Session()
s.mount('https://apiv2.unificationengine.com', ForceTLSV1Adapter())

----Some Code Here----

但是,在我发送请求之后,会弹出这个错误。

代码语言:javascript
复制
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 516, in urlopen
    body=body, headers=headers)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 304, in _make_request
    self._validate_conn(conn)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 724, in _validate_conn
    conn.connect()
  File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 237, in connect
    ssl_version=resolved_ssl_version)
  File "/usr/lib/python3/dist-packages/urllib3/util/ssl_.py", line 123, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "/usr/lib/python3.4/ssl.py", line 364, in wrap_socket
    _context=self)
  File "/usr/lib/python3.4/ssl.py", line 577, in __init__
    self.do_handshake()
  File "/usr/lib/python3.4/ssl.py", line 804, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 362, in send
    timeout=timeout
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 543, in urlopen
    raise SSLError(e)
urllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/pi/Documents/HumidityRequest.py", line 134, in <module>
    sendEmail(round(temp,3))
  File "/home/pi/Documents/HumidityRequest.py", line 92, in sendEmail
    r = requests.post('https://apiv2.unificationengine.com/v2/message/send', auth=(key,secret),data=userMessage)
  File "/usr/lib/python3/dist-packages/requests/api.py", line 94, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/api.py", line 49, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 457, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 569, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 420, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)

我不确定现在的问题是什么。

EN

回答 1

Stack Overflow用户

发布于 2016-09-10 15:34:10

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

https://stackoverflow.com/questions/39406836

复制
相关文章

相似问题

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