如何强制请求使用我的ubuntu系统上的证书

时间:2015-07-16 08:16:53

标签: ssl python-requests

我正在使用自签名证书进行调试。

$ 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

1 个答案:

答案 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