使用请求验证 SSL 证书
Verify SSL certificate with Requests
我正在尝试验证 SSL,但它不起作用。
- 我在我的浏览器上访问了我想要的机密网站。
- 在 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 链:
我正在尝试验证 SSL,但它不起作用。
- 我在我的浏览器上访问了我想要的机密网站。
- 在 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(截图):