【发布时间】:2014-03-31 09:27:38
【问题描述】:
我正在使用请求连接到 RESTful API。我想访问的服务器使用带有自签名证书的 ssl。
cafile = "gateway.pem"
r = requests.get(request, auth=('admin', 'password'), verify=cafile)
问题是我收到主机名不匹配的 SSLError。 应该有一种方法可以在不禁用证书验证的情况下禁用主机名检查,就像在许多 java 实现中一样,但我找不到如何在 python 中使用请求。
堆栈跟踪:
Traceback (most recent call last):
File "<pyshell#43>", line 1, in <module>
r = requests.get(request, auth=("admin", "password"), verify='gateway.pem')
File "C:\Python27\lib\site-packages\requests-2.0.0-py2.7.egg\requests\api.py", line 55, in get
return request('get', url, **kwargs)
File "C:\Python27\lib\site-packages\requests-2.0.0-py2.7.egg\requests\api.py", line 44, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Python27\lib\site-packages\requests-2.0.0-py2.7.egg\requests\sessions.py", line 357, in request
resp = self.send(prep, **send_kwargs)
File "C:\Python27\lib\site-packages\requests-2.0.0-py2.7.egg\requests\sessions.py", line 460, in send
r = adapter.send(request, **kwargs)
File "C:\Python27\lib\site-packages\requests-2.0.0-py2.7.egg\requests\adapters.py", line 358, in send
raise SSLError(e)
SSLError: hostname '10.76.92.70' doesn't match u'lital.com'
如何做到这一点?
【问题讨论】:
标签: python ssl python-requests