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 让它重新认识到新更证书。

posted @ 2024-10-10 11:31  冰豆花  阅读(190)  评论(0)    收藏  举报