You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu服务器Docker构建时TLS证书altnames不匹配错误如何解决

问题根因

你遇到的错误核心是Docker容器内发出的所有HTTPS请求,都被劫持返回了服务器上abc.xyz域名的SSL证书,导致第三方域名的证书校验不通过。由于宿主机执行同类操作正常,问题范围锁定在Docker网络相关的配置错误。

排查步骤
  • 验证容器内DNS解析是否异常:启动一个临时测试容器执行docker run --rm busybox nslookup registry.npmjs.org,对比宿主机执行nslookup registry.npmjs.org的返回IP。如果容器内返回的是你服务器自身的IP,说明Docker环境的DNS被篡改,或者流量被强制转发到本地。
  • 检查iptables NAT规则:执行sudo iptables -t nat -L -n,查看是否存在误配置的规则,将Docker子网/ docker0网卡的443端口流量,DNAT转发到了本地Tomcat监听的443端口。多数此类问题都是配置本地HTTPS反向代理、透明代理时,未排除Docker子网导致的。
  • 检查Docker daemon代理配置:查看/etc/systemd/system/docker.service.d/http-proxy.conf是否存在错误的HTTPS代理配置,指向了本地服务。
  • 检查ufw转发规则:执行sudo ufw status确认是否有规则强制将Docker的出站443流量转发到本地。
解决方案
  • 若为iptables规则错误:删除对应的误配置DNAT规则,匹配到Docker子网转发443到本地的规则后,执行sudo iptables -t nat -D 规则链 规则序号删除,之后保存iptables规则避免重启失效。
  • 若为Docker代理配置错误:删除http-proxy.conf中的错误配置,执行sudo systemctl daemon-reload && sudo systemctl restart docker重启Docker服务生效。
  • 临时验证方案:构建镜像时添加--network host参数使用宿主机网络构建,如果可以正常拉取依赖,即可100%确认是Docker默认网桥的网络配置问题。

内容的提问来源于stack exchange,提问作者Lewis Tran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 05:36:08