Python SSL: 使用Python3时出现CERTIFICATE_VERIFY_FAILED错误
在本文中,我们将介绍在使用Python3时遇到的SSL证书验证失败错误(CERTIFICATE_VERIFY_FAILED)以及解决方法。
阅读更多:Python 教程
什么是SSL证书验证失败错误?
SSL(Secure Socket Layer,安全套接层)是一种用于保护网络通信的协议。在进行HTTPS请求时,服务器会提供一个SSL证书,该证书由证书颁发机构(CA)签发,用于验证服务器的身份。
SSL证书验证失败错误是由于Python3默认开启了对服务器SSL证书验证的严格模式,如果服务器提供的证书无效或不受信任,Python3将会拒绝与该服务器建立连接并抛出CERTIFICATE_VERIFY_FAILED错误。
解决Python3中的SSL证书验证失败错误
解决这个问题的方法有两种:一种是忽略对服务器证书的验证,另一种是手动安装服务器证书,并将其添加到Python3的信任列表中。
方法一:忽略证书验证
可以通过设置VERIFY=False
来忽略对服务器证书的验证。以下是一个示例:
需要注意的是,忽略证书验证可能导致安全风险,因为这样任何服务器都可以欺骗你的Python3程序。只有在你对服务器的信任度非常高或者在测试环境中使用时才建议使用该方法。
方法二:手动安装服务器证书
另一种解决方法是手动安装服务器证书,并将其添加到Python3的信任列表中。以下是具体操作步骤:
- 打开浏览器,访问需要连接的服务器网站(例如https://example.com)。
- 点击浏览器地址栏前面的锁图标,点击”证书”或”安全”按钮。
- 在证书详细信息页面中,找到证书链中的根证书(Root Certificate)。
- 导出根证书为“.pem”或“.crt”格式的文件。
- 打开Python代码编辑器,在代码中指定证书文件的路径。
以下是一个示例,假设证书文件名为”example.pem”:
使用该方法可以确保连接的服务器身份验证可信任。
总结
Python3的SSL证书验证失败错误是由于默认开启了对服务器SSL证书的严格验证。通过忽略证书验证或手动安装服务器证书并添加到信任列表中,可以解决该问题。值得注意的是,忽略证书验证可能导致安全风险,应谨慎使用。
使用上述方法,您应该能够有效解决Python3中的CERTIFICATE_VERIFY_FAILED错误,并顺利进行SSL通信。如果问题仍然存在,请检查服务器证书是否有效,并确保Python3的环境配置正确。