📅  最后修改于: 2023-12-03 15:05:21.852000             🧑  作者: Mango
当运行程序时出现' SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1091) '错误,原因是 Python 无法验证 SSL 证书。
这是一个常见错误,解决此问题需要对正在连接的 SSL 证书进行身份验证。如果连接到的 SSL 证书未通过身份验证,则 Python 会拒绝连接并引发此错误。
下面是解决此问题的几种方法。
忽略证书验证是解决此问题的一种可能的解决方案,但在实际生产环境中不建议使用。
import ssl
import urllib.request
ssl._create_default_https_context = ssl._create_unverified_context
response = urllib.request.urlopen(url)
另一种解决方法是在 Python 代码中手动导入 SSL 证书。
import ssl
import urllib.request
# 导入 SSL 证书
ssl._create_default_https_context = ssl._create_unverified_context(cafile="/path/to/your/certificate.pem")
# 打开链接
response = urllib.request.urlopen(url)
禁用 SSL 验证是另一个解决此问题的可能方案。
import urllib.request
# 禁用 SSL 验证
context = ssl._create_unverified_context()
# 打开链接
response = urllib.request.urlopen(url, context=context)
请注意,在禁用 SSL 验证时会放弃 SSL 验证,因此数据的完整性和机密性可能会受到威胁。在生产环境中使用时,请务必谨慎考虑。
以上是解决' SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1091) '错误的几种方法。