CRI无法拉取镜像
现象
CRI(如 docker)拉取镜像提示 x509: certificate has expired or is not yet valid。
curl -Iv 仓库地址提示 The certificate issuer's certificate has expired. Check your system date and time.
仓库使用的let's encrypt 证书。
解决方案
参考:https://blog.csdn.net/weixin_47103265/article/details/121101709
这是由于let's encrypt 之前的根证书已替换,而主机的 ca-certificates版本过老(问题主机版本甚至是 2015 年的),没有更新根证书。
更新组件解决
yum install ca-certificates
update-ca-trust extract
更新后版本升级到了 2023 年的,curl 命令结果也正常了。
本以为问题就解决了,结果 docker 仍然无法拉取镜像,仍然是上面的报错。
查了挺多文档,都说是要重启docker,为了避免影响,临时方式是导出根证书放入 /etc/docker/certs.d/your_harbor/ca.crt。
结果遇到了另一个问题,参见 https://www.cnblogs.com/IcePudding/p/18455937 。
最终解决肯定还是要重启 docker 让它重新认识到新更证书。

浙公网安备 33010602011771号