CentOS镜像中pip升级命令遇SSL证书验证失败问题求助
问题原因与解决方案
核心原因分析
- PyPI旧域名证书失效:
pypi.python.org是PyPI的旧域名,官方早已停止维护该域名的SSL证书,目前证书已过期,直接访问会触发SSL验证失败。现在官方统一使用pypi.org作为主域名。 - CentOS 7 EOL的连锁影响:CentOS 7停止支持后,系统默认的根证书库不再接收更新,即使使用新的PyPI域名,旧的根证书可能无法识别新的SSL证书;同时CentOS 7自带的Python、pip版本普遍偏旧,对现代TLS协议支持不足,也会加剧SSL验证失败的概率。
替代绕过的正确解决方案
不要仅用--trusted-host绕过证书检查(存在安全风险),推荐以下方案:
- 切换到PyPI官方新源
修改pip命令,指定新的源地址:RUN pip install --upgrade 'pip==20.3.4' -i https://pypi.org/simple/ - 更新系统根证书
手动更新CentOS 7的根证书(即使EOL,可通过第三方渠道获取最新的ca-certificates包),执行:yum install --nogpgcheck ca-certificates update-ca-trust extract - 升级Python版本
CentOS 7自带的Python版本(如2.7、3.6)过于老旧,建议安装Python 3.8及以上版本,新版本的pip对TLS协议和新源的兼容性更好。
内容的提问来源于stack exchange,提问作者Annie Van
相关产品推荐
相关产品推荐

