📌  相关文章
📜  ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1091) (1)

📅  最后修改于: 2023-12-03 15:05:21.852000             🧑  作者: Mango

SSL证书验证失败错误解决方案

当运行程序时出现' 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)
导入 SSL 证书

另一种解决方法是在 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 验证

禁用 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) '错误的几种方法。