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

Traefik ACME HTTP-SNI-01验证超时,如何修复HTTP验证问题?

修复Traefik + Docker环境下Let's Encrypt HTTP验证超时问题

从你的日志和配置来看,Let's Encrypt验证服务器尝试通过IPv6访问你的80端口时超时,而且相同配置在Consul后端能正常运行,说明问题集中在Docker网络、IPv6配置或者acme.json权限这几个方向。这里给你几个针对性的修复方案:

1. 强制使用IPv4进行验证(快速排查)

日志里明确标注Used: *IPv6*,如果你的服务器没有配置可用的IPv6网络,或者不需要IPv6支持,可以让Traefik只监听IPv4,强制Let's Encrypt用IPv4验证:

  • 修改Traefik配置里的entryPoints地址,把:80和:443改成0.0.0.0:80和0.0.0.0:443:
    [entryPoints]
    [entryPoints.http]
    address = "0.0.0.0:80"
    [entryPoints.http.redirect]
    entryPoint = "https"
    compress = true
    [entryPoints.https]
    address = "0.0.0.0:443"
    [entryPoints.https.tls]
    
  • 重启Traefik容器后,再触发证书申请,看是否能成功。

2. 检查Docker网络与端口映射

因为问题仅出现在Docker后端,要确认Traefik和Dropcart的网络连通性:

  • 确认Traefik容器的80/443端口正确映射到主机:启动容器时必须包含-p 80:80 -p 443:443(Docker Compose则在ports字段配置),且主机的80端口没有被其他服务占用。
  • 验证Traefik能访问Dropcart的验证路径:进入Traefik容器内部,执行curl http://<dropcart-container-ip>/.well-known/acme-challenge/test,如果返回404以外的错误,说明容器间网络不通,需要确认两者在同一个Docker网络,或者网络配置正确。
  • 检查主机防火墙:确保主机的80端口(IPv4)对外开放,iptables/ufw等防火墙规则没有拦截外部请求。

3. 修复acme.json的权限问题

acme.json文件需要严格的600权限(仅所有者可读可写),否则Traefik无法正确读写证书数据,会导致验证流程异常:

  • 执行以下命令修改权限:
    chmod 600 /etc/traefik/acme/acme.json
    chown root:root /etc/traefik/acme/acme.json
    
  • 重启Traefik容器,让权限变更生效。

4. 排除Dropcart对验证路径的拦截

有时候后端服务(比如Dropcart的Web服务器)会拦截.well-known/acme-challenge路径,导致Traefik无法响应验证请求:

  • 检查Dropcart的Nginx/Apache配置,确保没有对.well-known/acme-challenge做重定向、拦截或路由规则,必要时添加一条规则让该路径直接由Traefik处理。
  • 可以临时停止Dropcart服务,手动在Traefik容器的对应目录下创建测试文件,然后从外部访问http://domain.example.com/.well-known/acme-challenge/test,如果能正常返回内容,说明问题出在Dropcart的配置上。

5. 切换到稳定版Traefik镜像

你提到使用了Let's Encrypt rc5版本的Docker镜像,这个预览版可能存在bug,建议切换回稳定版的Traefik镜像(比如traefik:v2.10或traefik:latest),再测试证书申请流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:05:05