刷新让我们在 docker 容器中加密根 CA

Refresh Lets encrypt root CA in docker container

我 运行 debian 9 在我的 docker 容器中,今天我无法更新 Lets encrypt inside 容器的根证书。在主机 Ubuntu 20 上,一切正常,没有我的任何干预,但在我的 debian 容器上,我无法获得新的根 Lets Encrypt 证书,只有从头开始的娱乐容器有帮助。我试过 update-ca-certificates --fresh,但没有用。有什么想法吗?

由于这个问题,从容器内部向带有 Lets Encrypt 证书的 https 服务的请求失败,并显示“SSL 证书问题:证书已过期”,因为 Lets Encrypt 的根证书已于今天(2021 年 9 月 30 日)过期

首先尝试从 /etc/ca-certificates.conf:

中的列表中删除旧证书
sed -i 's#mozilla\/DST_Root_CA_X3.crt#!mozilla\/DST_Root_CA_X3.crt#g' /etc/ca-certificates.conf
update-ca-certificates --fresh

昨天我也遇到了同样的问题,但我正在分享黑客的东西,因为它是生产环境,所以我必须立即这样做,我的 docker 图像在 AWS ECR 中。所以我决定重建 TaskDefinition 拥有的图像。

只需从 ECR 中提取 docker 个图像,使用该图像创建一个新的 Dockerfile

From <acc.docker-image:tag>
RUN sed -i 's/mozilla\/DST_Root_CA_X3.crt/!mozilla\/DST_Root_CA_X3.crt/g' /etc/ca-certificates.conf
RUN update-ca-certificates

构建新的 docker 图像并推送到 ECR,从 TaskDefinition 创建新的修订版,并更新最新的图像。

最后,我用新的 TaskDefintion 更新了 ECS 服务,我的问题在 20 分钟内得到解决。

我不确定你的 ENV,但这个简单的 hack 东西会减少痛苦,你会花时间为你的应用程序重建基础图像。