通过请求验证SSL证书

时间:2020-10-06 11:11:10

标签: python ssl python-requests ssl-certificate

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

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

我的代码是:

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

错误是:

文件 “ C:\ Users \ xxxxx \ Downloads \ WinPython \ WPy64-3850 \ python-3.8.5.amd64 \ lib \ site-packages \ requests \ adapters.py”, 发送中的第514行 引发SSLError(e,request = request)

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

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

无论是否有代理,我都尝试过,同样的错误...

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

1 个答案:

答案 0 :(得分:1)

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

点击页面信息:

enter image description here


然后下载完整的PEM链:

enter image description here