首页 > 解决方案 > SSL:CERTIFICATE_VERIFY_FAILED 证书验证在 Python 中失败

问题描述

在 Python 中编写 POST REQUEST 时,我遇到了一些问题:

self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate (_ssl.c:1108)

我不想设置:verify = False 在请求中。

我该如何处理这个问题?

标签: pythonrestrequestget-request

解决方案


发生错误是因为服务器使用的证书不是由requests模块使用的受信任 CA 的默认列表中包含的证书颁发机构 (CA) 颁发的。它是一个自签名证书,因此您需要requests明确告知信任该单独证书,或者(最好,如果服务器在您的控制之下),获取由受信任 CA 之一签名的证书并让服务器使用该证书反而。

要仅信任服务器正在使用的确切证书,请下载它,而不是设置verify=False,设置服务器证书verify="/path/to/cert.pem"在哪里。cert.pem


推荐阅读