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

Nginx下.well-known/acme-challenge路径访问404问题求助

解决Nginx下ACME验证文件404的问题

这问题我帮很多人排查过,核心是Nginx的location匹配顺序在搞鬼!

问题根源

Nginx对**正则表达式类型的location(~或~*)**是按配置里的出现顺序匹配的,第一个匹配上的location就会生效。你的配置里,location ~ /.well-known这个正则会先捕获所有包含.well-known的请求(自然也包括/.well-known/acme-challenge/file),但这个块里只有allow all,没告诉Nginx怎么找文件,导致它找不到你放的验证文件,直接返回404。而后面那个更具体的/\.well-known/acme-challenge/ location因为排得晚,根本没机会被用到。

另外提一句,第二个location里的root /var/www/html;和break;都是多余的——server块已经全局设置了root,try_files本身就会处理文件查找逻辑。

修复后的配置

调整location顺序,把更具体的ACME验证路径放在前面,同时清理冗余配置:

server {
    listen 80;
    server_name weburl.com;
    root /var/www/html;

    # 优先匹配ACME验证的专属路径
    location ~ /\.well-known/acme-challenge/ {
        allow all;
        try_files $uri =404;
    }

    # 处理其他.well-known下的请求
    location ~ ^/.well-known {
        allow all;
    }
}

额外要检查的点

  • 验证文件权限:确保Nginx运行用户(一般是www-data)能读取该文件,建议文件权限设为644,目录权限设为755。
  • 重启Nginx:执行sudo systemctl restart nginx(对应你系统的重启命令)让配置生效。
  • 再次访问http://weburl.com/.well-known/acme-challenge/file确认正常访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:12:24