构建Caddy Docker镜像时出现proxy.golang.org证书验证失败问题
解决Caddy Builder镜像构建时的证书验证错误
问题原因
Alpine基础镜像默认的根CA证书不全,导致Go在访问Go Modules代理(proxy.golang.org)时无法验证SSL证书,抛出x509: certificate signed by unknown authority错误。
解决方案
在caddy_builder阶段先安装Alpine的CA证书包,再执行xcaddy构建命令:
修改后的Dockerfile:
ARG CADDY_VERSION=2.7 FROM caddy:${CADDY_VERSION}-builder-alpine AS caddy_builder # 安装CA证书,解决SSL证书验证问题 RUN apk add --no-cache ca-certificates && update-ca-certificates RUN xcaddy build \ --with github.com/dunglas/mercure \ --with github.com/dunglas/mercure/caddy \ --with github.com/dunglas/vulcain \ --with github.com/dunglas/vulcain/caddy FROM caddy:${CADDY_VERSION} AS caddy WORKDIR /var/www/app COPY --from=dunglas/mercure:v0.11 /srv/public /srv/mercure-assets/ COPY --from=caddy_builder /usr/bin/caddy /usr/bin/caddy COPY docker/caddy/Caddyfile /etc/caddy/Caddyfile
应急方案(不推荐用于生产)
如果临时需要绕过证书验证,可以在xcaddy命令前设置Go环境变量禁用证书检查:
RUN GOINSECURE=proxy.golang.org xcaddy build \ --with github.com/dunglas/mercure \ --with github.com/dunglas/mercure/caddy \ --with github.com/dunglas/vulcain \ --with github.com/dunglas/vulcain/caddy
这个方法会降低安全性,仅适合测试场景。
内容的提问来源于stack exchange,提问作者ankahla
相关产品推荐
相关产品推荐

