.well-known/acme-challenge nginx 404错误

.well-known/acme-challenge nginx 404 error

我正在尝试验证 SSL 证书的文件上传。 该文件需要 .well-known/acme-challenge/file

我已经成功地按照上面的方式放置了文件,但是当从网络上访问同一个文件时http://weburl.com/.well-known/acme-challenge/file,出现了 404 错误。 当我将相同的文件放在 .well-known/ 中时,可以从路径 http://weburl.com/.well-known/file 成功访问该文件。

我的 nginx 配置:

server {
        listen 80;

        server_name weburl.com; 
        root /var/www/html;

        location ~ /.well-known {
                allow all;
        }

        location ~ /\.well-known/acme-challenge/ {
            allow all;
            root /var/www/html;
            try_files $uri =404;
            break;
        }
}

在第一种情况下,它查找 /var/www/html/.well-known/file

在第二种情况下,它查找 /var/www/html/file

你想让它找到/var/www/html/.well-known/acme-challenge/file

这是因为您在 location 块中指定了 root,这会更改从中读取文件的位置。

所以不是这个:

    location ~ /\.well-known/acme-challenge/ {
        allow all;
        root /var/www/html; # <================= Your problem, sir
        try_files $uri =404;
        break;
    }

你应该有这个:

    location ~ /\.well-known/acme-challenge/ {
        allow all;
        try_files $uri =404;
        break;
    }

无耻插件:如果你只是做简单的虚拟主机,而且你对 node 很熟悉,你可能会喜欢 Greenlock

如果您已经在 Plesk 上安装了 LetsEcnrypt 模块,但由于某些原因您需要授权,例如。 example.com 像我们一样手动。

将您的授权码添加到
/var/www/vhosts/default/htdocs/.well-known/acme-challenge
而不是预期的(域 webroot)
/var/www/vhosts/example.com/htdocs/.well-known/acme-challenge

要找到所以我必须检查 /var/www/vhosts/system/example.com/conf/httpd.conf

您必须为 www-data 用户授予权限。

sudo chown -R www-data:www-data .well-known