如何解决SSL: CERTIFICATE_VERIFY_FAILED

"SSL: CERTIFICATE_VERIFY_FAILED"错误通常在使用Python的requests或urllib等库进行HTTPS请求时出现,它表明SSL证书验证失败。这可能是由于服务器证书无效、过期、自签名或缺失等原因所致。要解决此问题,可以尝试以下方法:

参考:
http://www.howtouselinux.com/post/ssl-certificate_verify_failed-in-python

  1. 升级Python版本: 确保你正在使用最新版本的Python。较旧版本的Python可能会导致一些SSL问题。

  2. 更新CA证书: 从操作系统或Python本身更新CA(Certificate Authority)证书库。这样可以确保系统能够正确验证服务器证书。

  3. 忽略证书验证: 在测试或特定情况下,你可以选择忽略证书验证。但请注意,这样做会使连接变得不安全,并不推荐在生产环境中使用。在requests中可以这样做:

python 复制代码
import requests

requests.get('https://example.com', verify=False)
  1. 使用自定义CA证书: 如果你的服务器证书是自签名的,可以使用verify参数来指定自定义CA证书的路径:
python 复制代码
import requests

requests.get('https://example.com', verify='/path/to/custom_ca.pem')
  1. 更新系统时间: SSL证书验证依赖于系统时间。如果系统时间不正确,可能导致证书验证失败。确保系统时间准确。

  2. 检查证书过期: 确认服务器证书是否过期。如果证书已过期,需要重新生成并更新服务器证书。

  3. 检查证书链: 确保服务器证书的完整证书链正确。有时,缺少中间证书或根证书可能导致验证失败。

  4. 检查网络代理: 如果你的网络使用代理,确保代理配置正确,并不会干扰SSL证书验证。

请注意,忽略证书验证或使用自定义CA证书都是暂时解决方案,不推荐在生产环境中长期使用。在生产环境中,请确保服务器证书的合法性和正确性,并正确配置SSL证书验证。

我们整理了一份Linux学习的pdf文件,放在下面的路径,可以自提:
https://www.howtouselinux.com/post/linux-commands-for-linux-beginners-cheat-sheet

相关推荐
学地理的小胖砸1 小时前
【Python 操作 MySQL 数据库】
数据库·python·mysql
救救孩子把1 小时前
MCP本地高效与云端实时:stdio 与 HTTP+SSE 传输机制深度对比
网络·网络协议·http·sse·mcp·stdio
2501_915909061 小时前
我用 Appuploader绕过 Mac,成功把 iOS 应用上线了 App Store
websocket·网络协议·tcp/ip·http·网络安全·https·udp
dddaidai1231 小时前
Redis解析
数据库·redis·缓存
数据库幼崽1 小时前
MySQL 8.0 OCP 1Z0-908 121-130题
数据库·mysql·ocp
Amctwd2 小时前
【SQL】如何在 SQL 中统计结构化字符串的特征频率
数据库·sql
betazhou2 小时前
基于Linux环境实现Oracle goldengate远程抽取MySQL同步数据到MySQL
linux·数据库·mysql·oracle·ogg
lyrhhhhhhhh3 小时前
Spring 框架 JDBC 模板技术详解
java·数据库·spring
Think Spatial 空间思维4 小时前
【HTTPS基础概念与原理】对称加密与非对称加密在HTTPS中的协作
网络协议·http·https
喝醉的小喵4 小时前
【mysql】并发 Insert 的死锁问题 第二弹
数据库·后端·mysql·死锁