Docker构建持续出现证书验证失败,已尝试多种方法仍未解决
Wolfi镜像APK更新SSL证书验证失败的解决思路与方案
错误日志
=> ERROR [ll runtime 2/11] RUN apk update && apk add --no-cache openssl 0.2s => CACHED [ll builder 2/15] WORKDIR /app 0.0s => ERROR [ll builder 3/15] RUN apk update --no-cache && apk add --no-cache gcc python3-dev 0.2s ------ > [ll runtime 2/11] RUN apk update && apk add --no-cache openssl: 0.122 fetch https://packages.wolfi.dev/os/aarch64/APKINDEX.tar.gz 0.231 C02C6899FFFF0000:error:0A000086:SSL routines:tls_post_process_server_certificate:certificate verify failed:ssl/statem/statem_clnt.c:2092: 0.232 WARNING: updating and opening https://packages.wolfi.dev/os: Permission denied 0.232 2 unavailable, 0 stale; 75 distinct packages available
解决思路与方案
1. 临时跳过证书验证(仅用于测试环境)
直接给apk命令添加--no-check-certificate参数,绕过证书验证:
RUN apk update --no-check-certificate && apk add --no-cache openssl
或者改用HTTP源替代HTTPS(同样仅限测试):
RUN echo "http://packages.wolfi.dev/os" > /etc/apk/repositories && apk update
2. 手动注入Wolfi可信根证书
将Wolfi官方签名证书添加到镜像的可信证书库:
# 创建证书目录并下载Wolfi根证书 RUN mkdir -p /usr/local/share/ca-certificates/ RUN curl -o /usr/local/share/ca-certificates/wolfi-ca.crt https://packages.wolfi.dev/os/wolfi-signing.rsa.pub.pem # 更新系统可信证书 RUN update-ca-certificates # 执行apk更新 RUN apk update && apk add --no-cache openssl
3. 排查网络环境问题
- 若宿主机器使用代理,确保Docker已配置代理,且代理的CA证书已注入到镜像中;
- 检查企业防火墙/网关是否存在SSL中间人拦截,若有需将拦截证书添加到镜像可信库;
- 确认宿主网络可正常访问
packages.wolfi.dev:443,无端口封禁或DNS解析问题。
4. 同步镜像系统时间
证书验证依赖时间准确性,若镜像内时间偏差过大可能导致证书过期判定错误:
RUN apk add --no-cache ntpdate && ntpdate pool.ntp.org RUN apk update && apk add --no-cache openssl
5. 更换预配置基础镜像
使用已包含完整证书配置的Wolfi衍生镜像作为基础镜像,避免从头配置证书:
FROM cgr.dev/chainguard/wolfi-base:latest WORKDIR /app RUN apk update && apk add --no-cache openssl
内容的提问来源于stack exchange,提问作者chips2343
相关产品推荐
相关产品推荐

