CentOS 8添加CA证书到信任库后访问quay.io仍出现证书错误
修复步骤
- 确认证书链完整性
你大概率仅下载了quay.io的末端服务证书,未包含完整根证书链,可通过以下命令直接导出完整可信链写入系统信任目录:
导出后重新执行信任更新命令:openssl s_client -showcerts -connect quay.io:443 < /dev/null | sed -n '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/p' > /etc/pki/ca-trust/source/anchors/quay.io-fullchain.crtupdate-ca-trust extract - 排查内网SSL代理拦截
报错中出现证书已被撤销提示,绝大多数场景是企业内网的流量审计/代理设备替换了quay.io的原始公网证书,你本地导入的公网证书和实际拿到的代理签发证书不匹配,自然不受信任。执行以下命令查看当前请求获取的证书颁发主体:
如果输出的颁发者不是Let's Encrypt相关主体,即可确认存在证书替换,需要将内网代理的根证书导入系统信任目录,而非公网quay.io的证书。openssl s_client -connect quay.io:443 | grep issuer - 适配Openshift部署场景
如果你是在部署阶段操作bootstrap节点,仅修改节点本地系统信任库不会同步到后续拉起的master、worker节点,需要在install-config.yaml中配置additionalTrustBundle字段,将需要信任的根证书内容填入该字段后重新生成部署清单,再执行安装。 - 排查工具自定义配置
部分环境下wget、curl等工具会配置自定义CA路径,不使用系统默认信任库:
执行cat ~/.wgetrc | grep ca-certificate检查wget是否指定了自定义CA包,如果有需将信任证书同步到对应路径,或者删除该配置使用系统默认信任库。
测试SSL连通性优先使用curl -v https://quay.io,只要没有SSL报错即为证书配置正常,返回404属于正常现象(wget直接访问镜像仓库地址默认走静态资源路径,自然不存在对应资源)。 - 清理证书撤销列表缓存
如果确认证书配置正确仍报错,可清理系统CRL缓存后重试:systemctl restart nss-db
内容的提问来源于stack exchange,提问作者Rohit Sasikumar
相关产品推荐
相关产品推荐

