群晖DSM918更新任何Docker镜像都提示x509: certificate signed by unknown authority的解决办法

我遇到了 Synology NAS 无法从本地 Docker 注册表中提取的问题:

docker: Error response from daemon: Get "https://redacted-local-hostname.net/v2/": x509: certificate has expired or is not yet valid 

事实证明,我的 Synology 没有获取最新的 CA 根证书。我可以通过运行curl

curl -I https://alexnj.com  
curl: (60) SSL certificate problem: certificate has expired  
More details here: https://curl.haxx.se/docs/sslcerts.html  
...

解决这个问题相当容易。以下命令以 PEM 格式从 curl.se 下载最新的根证书。我们将其移动到 Synology 保存 CA 证书捆绑包的位置,并覆盖它。我们创建源 CA 证书捆绑包的备份,并带有扩展名,以防万一您出于任何原因想要还原。.backup

cp /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt.backup  
wget --no-check-certificate https://curl.se/ca/cacert.pem  
mv cacert.pem /etc/ssl/certs/ca-certificates.crt 

在此之后,相同的 curl 命令开始成功。但是,Docker 仍然会抛出相同的错误,这意味着它没有获取更新的根证书。溶液?让我们尝试重新启动 Synology Docker 守护程序:

synoservice --restart pkgctl-Docker  

这解决了。如果您在使用 Synology 时遇到同样的问题,希望对您有所帮助!


参考资料:
https://alexnj.com/blog/updating-root-certificates-on-synology/
https://www.reddit.com/r/synology/comments/1ckc06u/cant_install_any_docker_image_getting_x509/
https://community.synology.com/enu/forum/1/post/136429

posted @ 2025-03-05 18:23  晴云孤魂  阅读(181)  评论(0)    收藏  举报