Python2运行urllib2请求报SSL证书验证失败但Python3正常如何解决
Python2执行失败、Python3执行正常的核心原因
- 根证书加载逻辑差异
RHEL 7.5 自带的 Python 2.7.5 经过发行版安全补丁回溯,默认强制开启HTTPS证书验证,但没有默认配置可信根证书的读取路径,发起请求时无法找到用于验证pkg.jenkins.io证书的根CA,直接触发验证失败。
你部署的 Python 3.7.9 属于后续独立安装的版本,默认会自动加载系统内置的/etc/pki/tls/certs/ca-bundle.crt根证书集合,或者自带了Mozilla维护的公开根证书列表,能够正常完成站点证书的合法性校验。 - 加密组件支持能力差异
Python 2.7.5 绑定的是 RHEL 7.5 自带的低版本OpenSSL工具链,对当前主流的TLS 1.2+协议、新的证书扩展字段、SHA2系列签名算法的兼容存在缺陷,也可能导致证书验证流程被中断。
Python 3.7.9 通常依赖更高版本的OpenSSL组件,对当前公网站点普遍使用的加密规则和证书格式支持更完善,符合jenkins.io站点的SSL配置要求。
内容的提问来源于stack exchange,提问作者Shurik
相关产品推荐
相关产品推荐

