尝试使用slackclient和Python2.7时,获取证书“验证”失败

2024-04-25 07:30:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我的设置是macos10.13.6(更新版),python2.7.15,我使用VPN连接(我需要安装VPN证书来解密HTTPs流量)。 问题是我无法连接到slack API

>>> import slackclient
>>> client = slackclient.SlackClient(myToken)
>>> client.server.rtm_connect()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/slackclient/server.py", line 131, in rtm_connect
    reply = self.api_requester.do(self.token, connect_method, timeout=timeout, post_data=kwargs)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/slackclient/slackrequest.py", line 104, in do
    proxies=self.proxies
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/api.py", line 112, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/sessions.py", line 512, in request
    resp = self.send(prep, **send_kwargs)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/sessions.py", line 622, in send
    r = adapter.send(request, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/adapters.py", line 511, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='slack.com', port=443): Max retries exceeded with url: /api/rtm.start (Caused by SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:726)'),))

版本包括:

^{pr2}$

Tags: inpysendrequestlibpackageslinelibrary
3条回答

另一个解决方案, 在你的钥匙链访问删除slack.com公司代币

我发现问题了。 出于某种原因,python不使用我的密钥链中的证书,而是使用/Library/Frameworks下openssl中的证书/Python.framework/Versions/2.7/etc/openssl/证书pem在

我在文件底部添加了证书,问题就解决了

另一个解决方案是在slackclient调用websocket客户端时添加No cert选项 在文件“c:/Python27/Lib/site packages/slackclient”中/服务器.py““

{sslop}第180行:添加

line 176:            self.websocket = create_connection(ws_url,
line 177:                                               http_proxy_host=proxy_host,
line 178:                                               http_proxy_port=proxy_port,
line 179:                                               http_proxy_auth=proxy_auth,
line 180:                                               sslopt={'cert_reqs':0})

相关问题 更多 >