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

CentOS7下Caddy无法启用自动HTTPS问题排查求助

Caddy证书申请失败(ACME挑战超时)问题排查与解决

问题原因分析

从错误日志可见,Let's Encrypt和ZeroSSL的ACME验证均出现连接超时。尽管你确认80/443端口已开放,但当前Caddy配置存在核心问题:
你直接指定了www.example.top:443作为监听地址,导致Caddy仅监听443端口。而HTTP-01验证要求必须通过80端口访问/.well-known/acme-challenge/路径完成域名所有权验证,你的配置未监听80端口,验证请求无法被Caddy处理,最终触发超时失败。
同时,TLS-ALPN-01挑战虽依赖443端口,但在未获取证书前,Caddy的初始443监听无法正确响应ACME的特殊TLS握手,也会导致验证失败。

解决方案

修改Caddyfile,利用Caddy的自动HTTPS特性(推荐),让Caddy自动处理证书申请、验证及端口管理:

{
    email xxx123@gmail.com
}

www.example.top {
    reverse_proxy localhost:9876
}

该配置会自动完成以下操作:

  • 监听80端口,处理ACME HTTP-01验证请求,同时将所有HTTP流量重定向至HTTPS
  • 监听443端口,使用自动申请的证书提供HTTPS服务
  • 自动续期证书,无需手动干预

若需手动配置端口(仅适用于特殊场景),可显式配置80端口处理验证:

{
    email xxx123@gmail.com
}

www.example.top:80 {
    # 处理ACME验证请求
    respond /.well-known/acme-challenge/* 200 {
        close
    }
    # 重定向所有HTTP请求到HTTPS
    redir https://{host}{uri} permanent
}

www.example.top:443 {
    reverse_proxy localhost:9876
}

验证步骤

  1. 重启Caddy服务:sudo systemctl restart caddy
  2. 实时查看日志确认证书申请状态:sudo journalctl -u caddy -f
  3. 测试80端口可用性:使用外部机器执行curl http://www.example.top/.well-known/acme-challenge/test,返回200则说明配置生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 02:12:32