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

Heroku ACM验证失败(CDN未返回HTTP挑战)问题排查求助

故障原因分析
  • HTTP挑战路径被拦截:Heroku ACM自动续期时需要访问/.well-known/acme-challenge/*路径的请求能正常返回验证内容,如果你方近期调整过应用全局重定向规则(比如HTTP强制跳HTTPS、非www跳www)、WAF规则、CDN缓存规则或者路由拦截逻辑,会导致挑战请求无法触达Heroku的验证服务,触发CDN not returning HTTP challenge错误,这也是运行多年的站点突然出现该问题的最常见原因。
  • DNS解析缓存遗留:虽然你已通过heroku domains命令确认DNS目标配置正确,但全球分布式DNS节点可能还遗留旧的解析记录,导致挑战请求被路由到已经失效的旧节点,无法正常通过验证。
  • ACM验证超时:如果证书更新触发后长时间未完成验证,Heroku会主动终止验证流程,返回验证失败状态,常见于验证触发后才修改DNS配置的场景。
  • 自定义CDN/反向代理配置冲突:如果站点前端额外配置了第三方CDN或者反向代理,代理层未透传/.well-known/路径的请求到Heroku源站,会直接导致挑战失败。
修复方案
  • 临时放行挑战路径:调整应用/CDN/WAF规则,确保所有/.well-known/acme-challenge/开头的请求不做重定向、不做拦截、不配置缓存,直接透传到Heroku源站。
  • 验证DNS解析有效性:使用nslookup 你的站点域名命令确认解析结果和heroku domains返回的DNS目标完全一致,如果存在不一致可以等待全球DNS缓存过期(通常1-10分钟,取决于你之前设置的TTL),或者手动清除本地DNS缓存后再验证。
  • 手动触发ACM重新验证:执行Heroku CLI命令heroku certs:auto:refresh,触发ACM重新发起证书验证流程。
  • 验证修复结果:执行heroku certs:auto查看ACM状态,等待1-5分钟后如果状态变为Ok即为修复完成,也可以直接访问站点查看SSL证书有效时间确认更新成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:54:07