使用请求验证 SSL 证书

Verify SSL certificate with Requests

我正在尝试验证 SSL,但它不起作用。

  1. 我在我的浏览器上访问了我想要的机密网站。
  2. 在 Chrome 我点击了储物柜 > 证书 > 详细信息 > 复制到文件 > base 64 > certif.cer

我的代码是:

test = requests.get('https://confidential.xx/', verify='certif.cer')

错误是:

File "C:\Users\xxxxx\Downloads\WinPython\WPy64-3850\python-3.8.5.amd64\lib\site-packages\requests\adapters.py", line 514, in send raise SSLError(e, request=request)

SSLError: HTTPSConnectionPool(host='xxxxx', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1123)')))

我不想使用 verify=False ,它有效但没有安全。

我试过使用和不使用代理,同样的错误...

我需要让它工作,请问如何让这段代码工作?

为了使 requests 不抱怨有效证书,提供给 verify= 的证书必须包含任何中间证书。要下载完整链,您可以使用 Firefox(截图):

点击页面信息:


然后下载完整的 PEM 链: