我正在使用自签名证书进行调试。
$ cp hbrls-server.cert /usr/local/share/ca-certificates/
$ update-ca-certificates
之后,我可以在hbrls-server.pem
中看到/etc/ssl/certs/
。但是requests
仍然会引发SSLError。
如果我指定这样的证书:requests.get('https://blabla', verify='/etc/ssl/certs/hbrls-server.pem')
,那就没问题了。
而python -m requests.certs
会返回/usr/local/lib/python2.7/dist-packages/certifi/cacert.pem
。
如何让requests
使用系统上的证书。我正在使用dockerize ......并且不希望在我的代码中看到verify=path-to-cert
。
编辑: ubuntu 12.04,python 2.7.3,请求2.7.0
答案 0 :(得分:5)
您可以设置环境变量REQUESTS_CA_BUNDLE
,这样您就不必修改代码了:
export REQUESTS_CA_BUNDLE=/usr/local/share/ca-certificates/hbrls-server.cert
来源:http://docs.python-requests.org/en/master/user/advanced/#ssl-cert-verification