.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
我正在尝试验证 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