使用请求验证 SSL 证书

Tot*_*ldo 4 python ssl ssl-certificate python-requests

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

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

我的代码是:

test = requests.get('https://confidential.xx/', verify='certif.cer')
Run Code Online (Sandbox Code Playgroud)

错误是:

文件“C:\Users\xxxxx\Downloads\WinPython\WPy64-3850\python-3.8.5.amd64\lib\site-packages\requests\adapters.py”,第 514 行,在 send raise SSLError(e, request=要求)

SSLError: HTTPSConnectionPool(host='xxxxx', port=443): 超过最大重试次数,url: / (由 SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:证书链中的自签名证书 (_ssl. c:1123)')))

我不想使用 verify=False ,它可以工作但不安全。

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

我需要使其工作,请问如何使该代码工作?

And*_*ely 6

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

点击页面信息:

在此输入图像描述


然后下载完整的PEM链:

在此输入图像描述