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

hbr*_*rls 7 ssl python-requests

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

$ cp hbrls-server.cert /usr/local/share/ca-certificates/
$ update-ca-certificates
Run Code Online (Sandbox Code Playgroud)

在那之后,我可以看到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

Mar*_*itz 6

您可以设置环境变量,REQUESTS_CA_BUNDLE这样就不必修改代码:

export REQUESTS_CA_BUNDLE=/usr/local/share/ca-certificates/hbrls-server.cert
Run Code Online (Sandbox Code Playgroud)

资料来源:http://docs.python-requests.org/en/master/user/advanced/#ssl-cert-verification

  • 我更喜欢使用`/ etc/ssl/certs/ca-certificates.crt`,它包括Ubuntu发行版提供的证书和用户添加的证书(`/ usr/local/share/ca-certificates /`). (5认同)