PyCharm控制台pip install报错 - 如何解决pip install网络报错 证书链包含自签名证书(Self-signed in chain)问题
摘要:本文针对Python开发中pip install常见的SSL证书验证失败问题(如"证书链包含自签名证书"错误),提供了多种解决方案。首先建议检查Python的SSL证书配置并更新certifi包;其次介绍了临时禁用证书验证的方法(不推荐长期使用);推荐使用国内镜像源如清华源加速下载;同时强调更新Python和pip版本的重要性。对于企业网络环境,提供了代理配置方案。最后指
Python系列Bug修复:PyCharm控制台pip install报错 - 如何解决pip install网络报错 证书链包含自签名证书(Self-signed in chain)问题
在Python开发过程中,使用pip install安装第三方库时,经常会遇到各种报错。一个常见的问题是:在执行pip install时遇到如下错误:
SSL: CERTIFICATE_VERIFY_FAILED: certificate has expired (_ssl.c:1131)
或者:
pip install网络报错 证书链包含自签名证书(Self-signed in chain)
这类错误通常与SSL/TLS证书验证失败有关,可能是由于Python环境中的SSL证书配置错误或不完整,或者是网络连接到PyPI时遇到的证书问题。本文将详细介绍如何解决这个问题,帮助你顺利通过pip install过程。
文章目录

一、问题描述与开发场景
1.1 开发场景
在开发Python项目时,pip是安装第三方库的常用工具。在使用PyCharm或命令行运行pip install时,Python会尝试通过HTTPS协议连接到PyPI(Python包索引)服务器并验证SSL证书。然而,当SSL证书链出现问题时,通常会抛出类似于“证书链包含自签名证书”的错误,导致pip install失败。
这种错误通常发生在以下场景:
- 使用的操作系统或Python环境未正确配置SSL证书。
- 网络中存在中间人攻击或网络代理,导致证书验证失败。
- PyPI服务器返回的证书链包含自签名证书或过期证书。
二、环境介绍
2.1 开发环境
本文讨论的开发环境为:
- Python版本:Python 3.x
- 操作系统:macOS
- IDE:PyCharm 2025

三、解决方案
3.1 检查证书链问题
在出现“证书链包含自签名证书”的问题时,首先需要确认Python是否正确安装了所需的根证书。在macOS上,Python通常使用系统默认的SSL证书库进行证书验证,但如果证书链中包含自签名证书或过期证书,SSL验证将失败。
你可以通过以下命令来检查Python环境中的SSL证书:
import ssl
print(ssl.get_default_verify_paths())
如果看到的是错误或路径不正确,说明Python的SSL证书配置存在问题。
3.2 更新证书
如果发现证书不完整或缺失,你可以手动更新Python环境中的根证书。macOS用户可以尝试以下操作:
- 打开“钥匙串访问”(Keychain Access)应用,检查系统中是否包含有效的根证书。
- 下载并安装
certifi包,该包包含最新的根证书:
pip install --upgrade certifi
安装certifi后,pip会使用certifi提供的最新证书链进行验证。
3.3 通过pip禁用证书验证
在某些情况下,暂时禁用证书验证可以绕过这个错误,尤其是当你信任网络连接时。你可以通过以下命令来禁用证书验证:
pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org <package_name>
这条命令告诉pip信任pypi.org等服务器,从而跳过SSL证书验证。注意:这种做法不推荐长期使用,因为它会降低网络安全性。
3.4 使用国内镜像源
如果你在国内使用pip安装库时遇到证书问题,可以考虑使用国内镜像源,它们通常提供有效的证书配置,且访问速度较快。
编辑或创建pip配置文件,配置为国内镜像源:
macOS用户的pip.conf配置文件
在~/.pip/pip.conf文件中添加如下内容:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
或者直接使用pip命令行安装时指定镜像源:
pip install <package_name> -i https://pypi.tuna.tsinghua.edu.cn/simple
3.5 更新Python和pip版本
有时,旧版本的Python或pip可能会导致证书验证问题。确保你的Python版本和pip版本都是最新的,尤其是pip可能存在的SSL/TLS支持问题。
更新pip:
pip install --upgrade pip
如果你使用的是Python 3.6或更早版本,建议更新Python至3.7及以上版本,因为较早版本的Python可能不完全支持现代TLS协议。
3.6 配置代理
如果你在公司或学校等有代理的网络环境中,pip可能会遇到证书验证问题。你可以通过设置pip代理来解决这个问题。使用以下命令设置代理:
pip install <package_name> --proxy http://user:password@proxyserver:port
确保代理服务器能够正确处理SSL/TLS请求,并提供有效的证书。
3.7 手动安装证书
如果问题依然存在,你可以手动下载PyPI服务器的根证书,并将其添加到系统的证书存储中。在macOS上,可以将下载的证书文件添加到系统的“钥匙串”中。
四、总结
在遇到pip install时出现“证书链包含自签名证书”错误时,首先需要检查Python环境中的SSL证书配置,确保证书链完整且未过期。通过更新证书、使用国内镜像源或禁用证书验证等方法,你可以解决这一问题。
在解决过程中,建议始终使用最新的pip版本,确保环境中的证书库完整。只有通过可靠的SSL/TLS连接,才能保证Python包的安全安装。
🔔 更多Bug解决方案请查看 ==> 全栈Bug解决方案专栏
作者✍️名片
更多推荐


所有评论(0)