我正在使用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 example@example.com.
 - 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.comwww.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目录的任何请求。现在,尝试再次请求证书,看看它是否有效。

10-01 13:04