如何在Ubuntu 14.04的Dockerfile中更新根证书
问题原因
Ubuntu 14.04 是2014年发布的版本,官方早已停止维护,默认软件源已经下线,你之前执行的apt-get update实际无法获取到最新的CA证书包;同时系统内置的Let's Encrypt旧根证书DST Root CA X3已于2021年过期,证书校验时会优先匹配这个过期根证书,导致报错。
修复方案
修改Dockerfile如下,无需关闭证书校验即可解决问题:
FROM ubuntu:14.04 # 第一步:替换为Ubuntu旧版归档源,保证能获取到最后发布的软件包 RUN sed -i 's/archive.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list RUN sed -i 's/security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list # 第二步:更新CA证书包,删除过期根证书 RUN apt-get update && apt-get install -y ca-certificates RUN rm -f /usr/share/ca-certificates/mozilla/DST_Root_CA_X3.crt RUN update-ca-certificates # 后续原有逻辑不变 RUN apt-get update RUN apt-get -y upgrade # RUN apt-get install -y curl # RUN curl -O https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/SphinxSearch/+archive/refs/heads/REL1_24.tar.gz RUN apt-get install -y wget RUN wget https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/SphinxSearch/+archive/refs/heads/REL1_24.tar.gz
补充说明
- 执行
rm -f /usr/share/ca-certificates/mozilla/DST_Root_CA_X3.crt是为了移除过期的旧根证书,避免系统校验时优先匹配该过期证书 - 替换为归档源后仅能获取到Ubuntu 14.04停止维护前最后发布的软件版本,仍存在其他安全风险,建议尽可能升级基础镜像到仍在维护的Ubuntu版本
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

