【BUG已解决】pip install 出现 SSL: CERTIFICATE_VERIFY_FAILED 报错的解决方案
【BUG已解决】pip install 出现 SSL: CERTIFICATE_VERIFY_FAILED 报错的解决方案前言本文主要介绍了使用 pip 安装 Python 包时出现SSL: CERTIFICATE_VERIFY_FAILED证书验证失败错误的完整排查过程和解决方案涵盖企业网络代理、系统证书缺失、Python证书路径配置、镜像源切换等多种场景希望能帮助大家彻底解决这个困扰众多开发者的经典问题。1. 问题描述1.1 完整报错信息Collecting requests Retrying (Retry(total4, connectNone, readNone, redirectNone, statusNone)) after connection broken by SSLError(SSLCertVerificationError(1, [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006))): /simple/requests/ WARNING: Retrying (Retry(total3, ...)) after connection broken by SSLError(...) ERROR: Could not find a version that satisfies the requirement requests ERROR: No matching distribution found for requestsmacOS 特有的报错形式ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1002)1.2 具体现象执行pip install 任意包名出现证书验证失败公司网络下更容易出现企业防火墙做了 HTTPS 中间人代理刚安装的 macOS 系统上运行 Python 脚本涉及 HTTPS 请求时报错之前能正常 pip install某次系统更新后突然报错用浏览器访问 pypi.org 是正常的但 pip 命令行报错1.3 触发场景归类场景环境特征企业/学校网络防火墙/安全网关做 SSL 中间人代理macOS 新装 PythonPython.org 官方安装包未正确配置证书系统证书链过期长期未更新系统根证书pip 自身版本过旧旧版 pip 的 SSL 处理逻辑有缺陷VPN/代理软件冲突部分 VPN 软件解密 HTTPS 流量2. 原因分析2.1 SSL 证书验证的基本原理客户端(pip) 发起 HTTPS 请求 ↓ 服务器(pypi.org) 返回证书链 ↓ 客户端验证证书链是否可信 - 查找本地的根证书授权机构(CA)列表 - 验证服务器证书是否由可信CA签发 ↓ 验证通过 → 建立安全连接 → 正常下载 验证失败 → SSL: CERTIFICATE_VERIFY_FAILEDunable to get local issuer certificate这句话的意思是客户端本地找不到能验证服务器证书链的根证书。2.2 五大根本原因#原因说明占比1macOS Python 证书未初始化python.org 官方安装包需要手动运行证书安装脚本30%2企业网络 HTTPS 中间人代理防火墙自签名证书替换了真实证书25%3系统根证书过期/缺失老旧系统长期未更新CA证书库20%4certifi 包版本过旧Python 用的 certifi 证书包没跟上最新CA15%5代理软件解密流量Charles/Fiddler等抓包工具改写了证书10%2.3 macOS 特有问题的根源macOS 从 python.org 下载安装的 Python非系统自带使用的是独立的 SSL 证书体系不会自动使用 macOS 系统的钥匙串证书。安装 Python 后如果没有额外运行证书安装脚本pip 就无法验证任何 HTTPS 网站的证书。3. 解决方案3.1 方案一macOS 运行官方证书安装脚本macOS 专属最常见问题的解法# 找到 Python 安装目录下的证书安装脚本 # 通常在 /Applications/Python 3.x/ 目录下 open /Applications/Python 3.11/Install Certificates.command或者直接在终端运行# 找到当前 Python 版本 python3 --version # 运行对应版本的证书安装脚本路径根据实际版本调整 /Applications/Python\ 3.11/Install\ Certificates.command如果找不到这个文件手动执行等效操作pip install --upgrade certifi python3 -c import certifi; print(certifi.where()) # 输出 certifi 证书文件路径 # 设置 SSL_CERT_FILE 环境变量指向该路径 export SSL_CERT_FILE$(python3 -c import certifi; print(certifi.where())) echo export SSL_CERT_FILE$(python3 -c import certifi; print(certifi.where())) ~/.zshrc source ~/.zshrc3.2 方案二升级 certifi 和 pip 本身# 升级 pip python -m pip install --upgrade pip # 升级 certifi提供最新的根证书列表 pip install --upgrade certifi # 重新尝试安装 pip install requests3.3 方案三使用 --trusted-host 参数临时绕过验证企业网络快速方案pip install requests \ --trusted-host pypi.org \ --trusted-host files.pythonhosted.org \ --trusted-host pypi.python.org永久配置写入 pip 配置文件# 创建/编辑 pip 配置文件 # macOS/Linux: ~/.pip/pip.conf 或 ~/.config/pip/pip.conf # Windows: %APPDATA%\pip\pip.ini mkdir -p ~/.pip cat ~/.pip/pip.conf EOF [global] trusted-host pypi.org files.pythonhosted.org pypi.python.org EOF⚠️ 安全提示--trusted-host会跳过 SSL 证书验证存在安全风险仅建议在可信的企业内网环境临时使用不要在公共网络长期使用此方案。3.4 方案四企业网络配置自定义 CA 证书更安全的企业方案如果你的公司网络使用了 SSL 中间人代理如 Zscaler、Blue Coat正确做法是安装公司提供的根证书# 1. 从 IT 部门获取企业根证书文件通常是 .crt 或 .pem 格式 # 2. 找到 certifi 的证书文件路径 python -c import certifi; print(certifi.where()) # 输出示例: /usr/local/lib/python3.11/site-packages/certifi/cacert.pem # 3. 将企业证书追加到 certifi 的证书包中 cat /path/to/company_ca.crt $(python -c import certifi; print(certifi.where())) # 4. 重新测试 pip install requests3.5 方案五使用国内镜像源同时解决网络慢的问题有些证书问题实际上与访问 pypi.org 的网络环境有关切换到国内镜像可以顺带绕开# 临时使用清华镜像 pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple # 永久设置镜像源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple # 其他常用国内镜像 # 阿里云: https://mirrors.aliyun.com/pypi/simple/ # 腾讯云: https://mirrors.cloud.tencent.com/pypi/simple # 豆瓣: https://pypi.doubanio.com/simple/3.6 方案六更新系统根证书Linux# Ubuntu/Debian sudo apt-get update sudo apt-get install --reinstall ca-certificates # CentOS/RHEL sudo yum reinstall ca-certificates sudo update-ca-trust force-enable3.7 方案七Windows 更新系统证书# Windows 通常通过 Windows Update 自动更新根证书 # 手动检查更新 Get-WindowsUpdate # 或者直接安装最新的 Visual C 和 .NET Framework 运行库 # 这些更新通常包含证书库的更新3.8 方案八临时禁用 SSL 验证仅供调试生产环境禁用在 Python 代码内部非 pip 命令行临时禁用import ssl import urllib.request # ⚠️ 仅用于本地调试生产环境切勿使用 ssl._create_default_https_context ssl._create_unverified_context或使用 requests 库import requests # ⚠️ 同样仅用于调试 response requests.get(https://example.com, verifyFalse)4. 排查诊断脚本# diagnose_ssl.py import ssl import certifi import requests print( SSL 诊断报告 ) print(fOpenSSL 版本: {ssl.OPENSSL_VERSION}) print(fcertifi 证书路径: {certifi.where()}) try: response requests.get(https://pypi.org, timeout10) print(f✅ 连接 pypi.org 成功: {response.status_code}) except requests.exceptions.SSLError as e: print(f❌ SSL 验证失败: {e}) except Exception as e: print(f❌ 其他错误: {e}) # 检查证书文件是否存在 import os cert_path certifi.where() if os.path.exists(cert_path): print(f✅ 证书文件存在大小: {os.path.getsize(cert_path)} bytes) else: print(f❌ 证书文件不存在: {cert_path})运行诊断python diagnose_ssl.py6. 排查诊断脚本# diagnose_ssl.py import ssl import certifi import requests print( SSL 诊断报告 ) print(fOpenSSL 版本: {ssl.OPENSSL_VERSION}) print(fcertifi 证书路径: {certifi.where()}) try: response requests.get(https://pypi.org, timeout10) print(f✅ 连接 pypi.org 成功: {response.status_code}) except requests.exceptions.SSLError as e: print(f❌ SSL 验证失败: {e}) except Exception as e: print(f❌ 其他错误: {e}) # 检查证书文件是否存在 import os cert_path certifi.where() if os.path.exists(cert_path): print(f✅ 证书文件存在大小: {os.path.getsize(cert_path)} bytes) else: print(f❌ 证书文件不存在: {cert_path})运行诊断python diagnose_ssl.py7. 各方案适用场景总结方案适用场景安全性推荐度macOS证书脚本macOS python.org安装的Python✅ 安全⭐⭐⭐⭐⭐升级certifi所有场景首选尝试✅ 安全⭐⭐⭐⭐⭐--trusted-host快速临时解决⚠️ 有风险⭐⭐企业CA证书公司内网长期使用✅ 安全⭐⭐⭐⭐国内镜像源同时提速可能绕开证书问题✅ 安全⭐⭐⭐⭐⭐系统证书更新Linux/Windows老系统✅ 安全⭐⭐⭐⭐禁用SSL验证仅调试❌ 危险⭐8. 常见问题 FAQ8.1 conda 环境下的证书问题conda 安装的 Python 使用自己的证书体系与系统 Python 独立# conda 环境下升级证书 conda install -c conda-forge certifi ca-certificates --force-reinstall # 或者用pip方式在conda环境内 pip install --upgrade certifi8.2 requests 库单独配置证书路径如果只是某个 Python 脚本报错而不是 pip 命令本身import requests import certifi # 显式指定使用最新的证书包 response requests.get(https://example.com, verifycertifi.where())8.3 公司内网使用自签名证书的正确姿势# 1. 从系统信任列表导出证书macOS示例 security find-certificate -a -p /Library/Keychains/System.keychain /tmp/system_certs.pem # 2. 追加到 certifi 证书包 cat /tmp/system_certs.pem $(python -c import certifi; print(certifi.where()))8.4 Windows 上 python.org 安装版本 vs Microsoft Store 版本的差异Microsoft Store 版本的 Python 通常直接使用 Windows 系统的证书库很少遇到此问题而 python.org 官方安装包在某些情况下也可能出现类似 macOS 的证书初始化问题# Windows 检查当前使用的证书 python -c import certifi; print(certifi.where()) # 如果证书文件过旧直接升级 pip install --upgrade certifi8.5 VPN 软件导致的证书问题部分 VPN 客户端尤其是企业级VPN会对流量进行深度包检测DPI插入自己的证书# 临时关闭VPN测试是否是VPN导致的问题 # 关闭VPN后重新尝试 pip install pip install requests # 如果关闭VPN后正常说明需要将VPN的证书添加到信任列表9. 总结SSL: CERTIFICATE_VERIFY_FAILED的排查顺序macOS 用户先运行Install Certificates.command所有用户pip install --upgrade certifi企业网络配置--trusted-host或安装企业CA证书顺带提速切换国内镜像源conda用户单独处理conda环境的证书体系VPN用户排查是否是VPN软件的深度包检测导致特别提醒切勿在生产环境或涉及敏感数据传输的场景使用verifyFalse或--trusted-host长期绕过证书验证这会让你的连接暴露在中间人攻击的风险下。

相关新闻

AI开发工具安全与实战:Claude Code漏洞防御、火山方舟集成与Cursor移动端新体验

AI开发工具安全与实战:Claude Code漏洞防御、火山方舟集成与Cursor移动端新体验

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Claude 随心用,限时 5 折。 👉 点击领海量免费额度 最近在AI开发工具领域,几个关键动向引发了开发者社区的广泛关注。先是Claude Code被曝出存在安全隐患,打开G…

2026/7/3 11:40:22阅读更多 →
Rewardful vs PartnerShare:2026 SaaS 联盟营销管理追踪软件对比指南

Rewardful vs PartnerShare:2026 SaaS 联盟营销管理追踪软件对比指南

选择合适的联盟营销管理系统,能让SaaS企业在2026年的增长竞争中事半功倍。Rewardful和PartnerShare分别是海外与国内市场备受关注的两款工具,本文将从功能、定价、支付集成等维度进行全方位对比,帮你快速做出最适合业务阶段的选择。一、什么是…

2026/7/3 11:35:20阅读更多 →
从文件包含漏洞实战解析安全攻防:原理、复现与防御方案

从文件包含漏洞实战解析安全攻防:原理、复现与防御方案

1. 项目概述:从“攻”与“防”的视角理解安全实践“漏洞攻击与总结”这个标题,乍一看可能有点“黑客”的味道,容易让人联想到一些灰色地带。但作为一名在安全领域摸爬滚打了十多年的从业者,我想说的是,这恰恰是每一位负…

2026/7/3 11:35:20阅读更多 →
互联网大厂Java面试实录:严肃面试官VS搞笑水货程序员谢飞机(电商场景技术点详解)

互联网大厂Java面试实录:严肃面试官VS搞笑水货程序员谢飞机(电商场景技术点详解)

场景设定 地点:某知名互联网大厂技术面试间。 面试官:经验丰富、问题犀利的技术专家。 求职者:自带段子手风格的程序员谢飞机,擅长简单问题精确、复杂问题略模糊。本次面试聚焦Java技术栈,结合互联网电商场景&#xff…

2026/7/3 13:10:39阅读更多 →
手机租赁商家如何选择监管锁?从技术、安全和运维能力看,什么样的监管锁才靠谱?

手机租赁商家如何选择监管锁?从技术、安全和运维能力看,什么样的监管锁才靠谱?

手机租赁行业里,“监管锁”已经不是一个陌生词。无论是苹果设备的 MDM 管理、激活锁、丢失模式,还是安卓设备的远程管控、应用限制、设备状态监控,本质上都是为了降低租赁设备的资产风险。 但很多商家在选择监管锁时,容易只关注两…

2026/7/3 13:10:39阅读更多 →
计算机毕业设计之基于弹幕挖掘的视频数据分析技术研究

计算机毕业设计之基于弹幕挖掘的视频数据分析技术研究

摘 要本研究聚焦于基于弹幕挖掘的视频数据分析技术,旨在通过深入分析弹幕数据,揭示观众情感倾向、话题热点和观看行为等关键信息。研究采用了自然语言处理、机器学习等先进技术,实现了对弹幕内容的精准分类和情感预测。通过构建可视化面板&am…

2026/7/3 13:10:39阅读更多 →
工业4-20mA电流环发射器设计与STM32F723应用

工业4-20mA电流环发射器设计与STM32F723应用

1. 4-20mA电流环发射器的工业应用背景在工业自动化领域,4-20mA电流环传输技术已经持续应用超过60年,至今仍是过程控制系统中模拟信号传输的黄金标准。这种双线制传输方案之所以经久不衰,主要得益于其独特的物理特性:电流信号对线路…

2026/7/3 13:10:39阅读更多 →
2026年梳子生产商靠谱指南:这几家工厂口碑公认

2026年梳子生产商靠谱指南:这几家工厂口碑公认

在消费升级与传统文化复兴的双重趋势下,梳子已从单纯的日常工具演变为兼具实用、养生与审美价值的品质载体。面对市场上琳琅满目的品牌与代工厂,如何筛选出工艺扎实、品控稳定且具备文化底蕴的靠谱生产商,成为诸多采购商与消费者的核心诉求。…

2026/7/3 13:10:39阅读更多 →
AI自动生成论文可靠吗?2026年精选11款写论文的AI指南,帮你规避学术不端雷区

AI自动生成论文可靠吗?2026年精选11款写论文的AI指南,帮你规避学术不端雷区

从开题到定稿,论文写作的每个环节都可能让人抓狂:文献浩如烟海无从下手,框架逻辑混乱难以自洽,格式规范繁琐易出错,查重降重更是耗时耗力。别担心!如今,一系列AI论文写作工具已成为科研人的得力…

2026/7/3 13:05:38阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/7/2 12:10:34阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/7/2 12:10:34阅读更多 →
LV3296与PIC18F45K22的UART通信与USB扩展方案

LV3296与PIC18F45K22的UART通信与USB扩展方案

1. LV3296与PIC18F45K22的硬件搭档解析在嵌入式数据采集系统中,LV3296条形码扫描模块与PIC18F45K22微控制器的组合堪称经典搭配。LV3296作为一款工业级条码扫描头,其核心是一颗高性能CMOS图像传感器,配合专用解码芯片,能自动识别包…

2026/7/3 0:03:41阅读更多 →
AI初创生存指南:6个月完成可信度验证闭环

AI初创生存指南:6个月完成可信度验证闭环

1. 这不是“逆袭指南”,而是一份AI初创公司真实生存手记“How To Beat Odds As an AI Startup?”——这个标题乍看像一句热血口号,但在我带过7个从0到1的AI产品团队、亲手踩过融资失败、技术债崩盘、客户POC卡在最后一公里等23类典型坑之后,…

2026/7/3 0:03:41阅读更多 →
多模态+推理链+RAG 2.0+智能体:工业级AI系统落地四支柱

多模态+推理链+RAG 2.0+智能体:工业级AI系统落地四支柱

1. 这不是又一篇“AI趋势速览”,而是一份实操者手记:当多模态、推理链、检索增强与智能体协作真正撞进工程现场“LAI #73”这个编号本身就像一个暗号——它不属于某家大厂的白皮书,也不是学术会议的议程表,而是长期泡在模型训练集…

2026/7/3 0:03:41阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/3 1:12:46阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/3 1:36:36阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/3 2:08:15阅读更多 →