问题排查 · HTTP 验证
HTTP 验证失败怎么办
HTTP-01 验证要求 Let’s Encrypt 服务器能通过公网 80 端口访问你域名下的
.well-known/acme-challenge/ 路径。任何一环不通都会导致验证失败。
排查顺序
按下面顺序逐项检查
| 现象 | 原因与处理 |
|---|---|
| 验证超时 / 一直失败 | 域名 A / AAAA 记录未指向本机公网 IP;确认解析后稍等 TTL 生效,或临时调低 TTL |
| 80 端口被占用 | Apache / nginx 占用了 80 端口;先停止占用进程,申请完成后再恢复 |
| 80 端口不可公网访问 | 云服务器安全组 / 家庭宽带路由器未放行 80 端口;或运营商封锁 80 端口 |
| Linux 权限不足 | 普通用户无法监听 1024 以下端口;执行 sudo setcap cap_net_bind_service=+ep 授权 |
| CDN / 前置代理拦截 | .well-known/acme-challenge 路径被 CDN 拦截或缓存;暂时关闭 CDN 或改用 DNS 验证 |
替代方案
80 端口用不了,直接换 DNS 验证
内网服务器、CDN 前置、运营商封锁等场景下 80 端口不可用,直接改用 DNS 验证即可:通过 DNS 服务商 API 自动添加 TXT 验证记录, 全程不依赖 80 端口,也不影响现有网站运行。