我正在使用certbot申请Let's Encrypt
证书,
我的服务器是centos 7.2
和nginx 1.11.9
。
下面是什么意思?
[root@test ~]# certbot certonly --webroot -w /var/www/www.example.com -d example.com -d www.example.com
Failed authorization procedure. example.com (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://example.com/.well-known/acme-ch
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>", www.example.com (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://www.example.com/.well-known/acme-challenge/k
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>"
IMPORTANT NOTES:
- If you lose your account credentials, you can recover through
e-mails sent to [email protected].
- The following errors were reported by the server:
Domain: example.com
Type: unauthorized
Detail: Invalid response from
http://example.com/.well-known/acme-challenge/wGNv57IGJjHQ9wyzzALktpNaPzfnTtN3m7u3QuO4p40:
"<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>"
Domain: www.example.com
Type: unauthorized
Detail: Invalid response from
http://www.example.com/.well-known/acme-challenge/kFJ0CSuKOdgcT2xmciB4GGNCcnUPoIbpQmA9jOII_Bk:
"<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>"
To fix these errors, please make sure that your domain name was
entered correctly and the DNS A record(s) for that domain
contain(s) the right IP address.
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
我可以访问
example.com
和www.example.com
,并且在文档中有一条注释:https://certbot.eff.org/#centosrhel7-nginx注意:
要使用webroot插件,必须将服务器配置为提供来自隐藏目录的文件。如果/.well-known由您的Web服务器配置专门处理,则可能需要修改配置以确保/.well-known/acme-challenge中的文件由Web服务器提供。
那是原因吗?
如何修改配置?
最佳答案
这是一个非常普遍的问题,但是幸运的是应该很容易解决。让我们加密必须能够从.well-known目录读取,以验证您的服务器确实托管了您想要证书的域。
首先,请确保您在网站根目录中有一个.well-known目录。设置您的权限,以便从外部可以读取它; 775应该是完美的。
然后,将此片段添加到Nginx中的虚拟主机文件中:
location ~ /.well-known {
allow all;
}
这将允许对我们刚刚创建的.well-known目录的任何请求。现在,尝试再次请求证书,看看它是否有效。