如何解决Windows 11下全场景出现的Python SSL证书验证失败问题?
解决方案
针对Windows 11下所有Python版本、pip及requests库出现的SSL证书验证失败问题,按以下步骤排查修复:
1. 修复Python的CA证书文件
- 找到对应Python安装目录下的
Lib\site-packages\certifi文件夹(多版本需逐个处理) - 备份该文件夹内的
cacert.pem文件 - 打开
certmgr.msc(Win+R输入启动),进入「受信任的根证书颁发机构」,导出任意一个根证书为**Base64编码的X.509(.CER)**格式,打开该CER文件,将内容追加到cacert.pem末尾;或者直接从正常运行的Python环境复制cacert.pem覆盖当前文件
2. 配置pip全局参数
- 在
C:\Users\[你的用户名]路径下新建pip文件夹,再创建pip.ini文件,写入:
[global] cert = C:\[你的Python安装路径]\Lib\site-packages\certifi\cacert.pem
- 若临时需要跳过验证(不推荐长期使用),可改用:
[global] trusted-host = pypi.org files.pythonhosted.org
3. 修复系统层面SSL问题
- 检查系统时间和时区是否正确(证书验证依赖准确时间)
- 以管理员身份打开命令提示符,执行:
certutil -syncWithRoots
- 暂时关闭第三方杀毒、防火墙软件,排查是否存在SSL连接拦截
4. 重新安装requests并配置全局证书
- 用配置好的pip安装requests:
pip install requests
- 若不想在代码中每次添加
verify=False,可在脚本开头设置全局证书路径:
import requests # 指向certifi的证书文件,或系统证书路径 requests.utils.DEFAULT_CA_BUNDLE_PATH = "C:\[Python安装路径]\Lib\site-packages\certifi\cacert.pem"
内容的提问来源于stack exchange,提问作者Gogle Squirminton the III
相关产品推荐
相关产品推荐

