修复 Python 中 SSL: CERTIFICATE_VERIFY_FAILED 错误
SSL是一种对用户和服务器之间传输的数据进行加密的协议。 服务器创建并向客户端发送数字证书,以确保数据不被篡改。
创建 SSL 证书时,CA 会检查域。
如果证书中指定的地址不存在该域,则 CA 会向证书颁发机构 (CA) 返回错误。 我们将了解有关 SSL 以及 SSL: CERTIFICATE_VERIFY_FAILED 错误的原因的更多信息。
SSL证书
SSL 证书是一种数字证书,使企业能够与 Web 浏览器建立安全、加密的连接。 当企业拥有 SSL 证书时,企业与网络浏览器之间交换的任何信息都将被加密,使得任何人都难以拦截和读取数据。
这对于企业来说很重要,因为它有助于保护敏感信息,例如信用卡号和登录凭据。
SSL:CERTIFICATE_VERIFY_FAILED 错误的原因
SSL: CERTIFICATE_VERIFY_FAILED
错误背后有几个原因。 下面逐一解释。
-
一种可能是网站的 SSL 证书无效,这意味着网站没有使用有效的证书来加密客户端和服务器之间的数据和通信。 因此,您的浏览器无法验证网站的身份。
这可能存在安全风险。 这意味着您的数据可能未正确加密并且可能被第三方拦截。
-
另一种可能是您的浏览器无法识别该网站的 SSL 证书。 如果网站使用自签名证书或来自未知颁发机构的证书,则可能会发生这种情况。
无论哪种情况,您的浏览器都将无法正确验证网站的身份,这又可能构成安全风险。
-
最后,如果网站的 SSL 证书链存在问题,也可能会出现 SSL: CERTIFICATE_VERIFY_FAILED 错误。 如果链中的证书之一已过期或吊销,或者网站使用过时的 SSL 版本,则可能会发生这种情况。
如果您看到此错误,您必须联系网站所有者并要求他们解决问题。
修复 SSL:CERTIFICATE_VERIFY_FAILED 错误
如果您看到 SSL: CERTIFICATE_VERIFY_FAILED 错误,则您的计算机无法验证您尝试访问的网站的 SSL 证书。 发生这种情况的原因有多种,包括网站的 SSL 证书问题、计算机的信任存储或网络问题。
要修复 SSL: CERTIFICATE_VERIFY_FAILED 错误,您需要找出导致该错误的原因。
是不是网站的SSL证书有问题? 如果是这样,您可以尝试使用其他浏览器访问该网站或联系网站所有者告知他们。
如果问题出在计算机的信任存储上,您需要使用最新的证书更新信任存储。 如果问题出在您的网络上,您需要对网络连接进行故障排除。
通过在 SSL 中创建未经验证的上下文来修复 SSL: CERTIFICATE_VERIFY_FAILED 错误
关于 SSL,需要考虑的最重要的事情之一是使用它的上下文。 不幸的是,这个问题没有一刀切的答案,因为使用 SSL 的上下文会根据具体情况而有所不同。
但是,有一些通用提示可以帮助创建更安全的 SSL 上下文。
首先,确保所有 SSL 连接均使用强加密技术进行非常重要。 这意味着使用强大的算法,例如 SHA-256 或 SHA-512,并确保所有密钥的长度至少为 2048 位。
此外,在建立 SSL 连接之前验证服务器的身份也很重要。 这可以通过根据受信任的第三方来源(例如证书颁发机构)检查服务器的证书来完成。
最后,确保正确配置 SSL 连接也很重要。 这包括确保所有连接均使用正确的协议和密码套件进行,并且所有证书均经过正确验证。
通过遵循这些技巧,可以创建更安全的 SSL 上下文,这有助于保护敏感数据并确保通信的私密性。
import ssl
context = ssl._create_unverified_context() urllib.request.urlopen(req,context=context)
通过在 SSL 中创建未经验证的 HTTP 上下文来修复 SSL: CERTIFICATE_VERIFY_FAILED 错误
在 SSL 中,只需省略服务器证书的验证即可创建未经验证的 HTTP 上下文。 不建议这样做,因为它会使客户端容易受到中间人攻击。
但是,在某些情况下可能是必要的,例如连接到使用自签名证书的服务器时。
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
urllib2.urlopen(“https://google.com”).read()
使用 pip 命令修复 SSL: CERTIFICATE_VERIFY_FAILED 错误
要使用 pip 更新 SSL 证书,请确保您已安装最新版本的 pip。 您可以通过运行以下命令来执行此操作:
pip install --upgrade pip
拥有最新版本的 pip 后,您可以运行以下命令来更新您的 SSL 证书:
pip install --upgrade certifi
如果出于特定原因需要更新 SSL 证书,可以将 --force-reinstall
选项与 pip 命令结合使用。 这将强制 pip 重新安装经过认证的软件包并覆盖任何现有文件:
pip install --upgrade certifi --force-reinstall
使用 request 模块修复 SSL: CERTIFICATE_VERIFY_FAILED 错误
Python Requests 库是一个用于发出 HTTP 请求的出色工具。 有时,您可能需要将 ssl_verify 选项设置为 False 以绕过 SSL 验证。
如果您尝试连接到具有无效或自签名 SSL 证书的服务器,这会很有用。 请记住,通常不建议将此选项设置为 False,因为它可能会让您容易受到中间人攻击。
requests.get(url, headers=Hostreferer,verify=False)
总结
SSL 是一种在服务器和客户端之间提供安全性和信任的协议。 它在许多必须保护敏感信息的情况下使用,例如在商店使用信用卡时。
有什么问题? 使用 SSL 时 python-requests 库存在问题。
当您使用 Python 向使用 SSL 的服务器请求时,默认情况下,该库将检查证书以确保其可信。 问题是默认的 Python 安装并不包含每个可能的 SSL 证书的根证书。
当您向使用自签名 SSL 证书或来自不在 Python 证书存储中的 CA 的证书的服务器发出请求时,这将导致请求失败。 将引发 HTTP 错误,并带有 SSL 错误的错误代码。
相关文章
修复 Python 中错误 Pylint Unresolved Import
发布时间:2023/07/05 浏览次数:89 分类:Python
-
本文将讨论如何在 Python 中使用 Pylint 解决未解决的导入错误。修复 Python 中的 Pylint 无法解析的导入错误 要解决 Python 中未解决的导入错误,请在工作区设置中设置 Python 路径。
修复 Python 中 ImportError: Cannot Import Name 错误
发布时间:2023/07/05 浏览次数:142 分类:Python
-
通过这个解释,我们将了解为什么会收到 ImportError: Cannot import name 错误。 我们还将学习如何在 Python 中修复此类错误。Python 中 ImportError: cannot import name 错误的原因
修复 Python 中错误 AttributeError: 'module' Object Has No Attribute 'SSL_ST_
发布时间:2023/07/05 浏览次数:171 分类:Python
-
在 Python 中使用 SSL 模块时,会引发 AttributeError: 'module' object has no attribute 'SSL_ST_INIT' 错误,因为 SSL 模块在 Python 标准库中不可用。要解决此问题,您必须安装 openssl-devel 软件包。
修复 python 中 AttributeError: 'generator' Object Has No Attribute 'next'
发布时间:2023/07/05 浏览次数:72 分类:Python
-
本篇文章将介绍修复 Python 中的 AttributeError: 'generator' object has no attribute 'next'。修复 Python 中的 AttributeError: 'generator' object has no attribute 'next' 错误
Python 中错误 File<Stdin>, Line 1, in <Module>
发布时间:2023/07/05 浏览次数:134 分类:Python
-
在本文中,我们将讨论人们面临的最常见的语法错误,即文件“”,第 1 行, 错误。 让我们看看为什么会出现这个错误以及如何在 Python 中解决它。Python 错误 File<Stdin>, Line 1, in <Module&
Python 中错误 AttributeError: Module Enum Has No Attribute Intflag
发布时间:2023/07/05 浏览次数:65 分类:Python
-
本篇文章将介绍修复 Python 中的 AttributeError: module 'enum' has no attribute 'IntFlag'。卸载 enum34 包以修复 Python 中的 AttributeError: module 'enum' has no attribute 'IntFlag' 错误
python 中解决 Graphviz Executables Are Not Found 错误
发布时间:2023/07/04 浏览次数:87 分类:Python
-
本文介绍了如何解决运行 Python 脚本时未找到 Graphviz 可执行文件的错误。安装Graphviz解决Python中 Graphviz executables are not found 错误
解决 Python中的 Reduce Is Not Defined 问题
发布时间:2023/07/04 浏览次数:161 分类:Python
-
本文将讨论如何解决 Python 代码中的“reduce 未定义”错误。python 中使用functools解决NameError: name 'reduce' is not Defined
python 中解决 Raise JSONDecodeError(Expecting Value, S, err.value) From None
发布时间:2023/07/04 浏览次数:52 分类:Python
-
在 json 库中,有一个方法,loads(),它返回 JSONDecodeError 错误。 在本文中,我们将讨论如何解决此类错误并进行适当的处理。从 Python 中使用 try 的 None 中解决 raise JSONDecodeError("Expecting value", s,