申请 Let’s Encrypt 免费 SSL 证书时出现 404验证失败
申请 Let’s Encrypt 免费 SSL 证书时出现 404验证失败,根本原因是证书颁发机构(CA)的验证服务器在尝试访问 http://qiba.org/.well-known/acme-challenge/...(即验证URL)时,您的服务器返回了“未找到”(404)的响应。这意味着验证文件没有被服务器正确提供。
您可以按照以下从易到难的步骤进行排查和解决:
1. 检查 Web 服务器目录配置(最常见原因)
Let’s Encrypt 需要在网站根目录下创建一个名为 .well-known的隐藏文件夹来验证域名所有权。如果服务器配置不当,就会拦截或无法读取这个目录。
- 手动测试:您可以尝试在浏览器中访问
http://qiba.org/.well-known/acme-challenge/test.txt。如果这个页面打不开或显示404,说明服务器未正确配置该目录的访问权限。 - 配置放行:
- Nginx/Apache:请检查您的 Web 服务器配置文件,确保没有阻止访问以点号
.开头的隐藏文件或目录。通常需要确保.well-known目录被正确映射到网站根目录。 - 宝塔面板/其他面板:如果您使用的是建站面板,通常在站点设置的“配置文件”或“伪静态”中,需要将
.well-known目录排除在 URL 重写(Rewrite)规则之外,防止被规则劫持。
- Nginx/Apache:请检查您的 Web 服务器配置文件,确保没有阻止访问以点号
2. 排查 301/302 重定向干扰
如果您之前将网站的 HTTP 强制跳转到 HTTPS,或者使用了 CDN 的全站加速,这会导致验证请求在经过跳转后,验证文件无法被正确找到。
- 临时关闭重定向:在申请证书的期间,暂时关闭网站的“强制 HTTPS”或“301 永久重定向”功能。确保
http://开头的验证 URL 能够直接访问到服务器的真实响应,而不是被跳转走。 - 申请成功后恢复:证书申请或续签成功后,您可以再重新开启强制跳转。
3. 检查 CDN 缓存与代理
如果您为该域名接入了 CDN(如阿里云CDN、腾讯云CDN、Cloudflare 等),CDN 节点可能会缓存旧的错误页面或直接拦截验证请求。
- 暂停 CDN:建议在申请证书时,先将域名的 CDN 加速功能暂停,或将解析记录修改为“仅 DNS 解析”(DNS only),待证书颁发成功后再重新开启。
4. 检查防火墙与安全组
确保您的服务器防火墙以及云服务商的安全组已经放行了 80 端口。Let’s Encrypt 的 HTTP 验证必须通过 80 端口进行通信。
💡 进阶建议:
如果经过上述常规的 Web 服务器配置排查后依然无法解决,建议您尝试在 SSL 申请面板中切换验证方式,选择 DNS 验证(DNS-01)。这种方式不需要服务器开放 80 端口或配置特殊目录,只需要您前往域名注册商(如阿里云、腾讯云 DNSPod)的控制台,添加一条特定的 TXT 解析记录即可完成验证,通常能绕过大部分 Web 服务器的配置难题。
