Nginx Certbot未创建acme挑战文件夹

Nginx Certbot未创建acme挑战文件夹,nginx,https,lets-encrypt,certbot,Nginx,Https,Lets Encrypt,Certbot,几个月前(使用旧的letsencrypt客户机)我正在工作Let's encrypt证书。 我使用的服务器是nginx Certbot正在创建.well文件夹,但不是acme challenge文件夹 现在,我试图通过~/certbot auto-certonly--webroot-w/var/www/webroot-d domain.com-d www.domain.com-d git.domain.com 但我总是会遇到这样的错误: IMPORTANT NOTES: - The fol

几个月前(使用旧的letsencrypt客户机)我正在工作Let's encrypt证书。 我使用的服务器是nginx

Certbot正在创建.well文件夹,但不是acme challenge文件夹

现在,我试图通过
~/certbot auto-certonly--webroot-w/var/www/webroot-d domain.com-d www.domain.com-d git.domain.com

但我总是会遇到这样的错误:

IMPORTANT NOTES:
   - The following errors were reported by the server:

   Domain: git.domain.com
   Type:   unauthorized
   Detail: Invalid response from
   http://git.domain.com/.well-known/acme-challenge/ZLsZwCsBU5LQn6mnzDBaD6MHHlhV3FP7ozenxaw4fow:
   "<.!DOCTYPE html>
   <.html lang='en'>
   <.head prefix='og: http://ogp.me/ns#'>
   <.meta charset='utf-8'>
   <.meta content='IE=edge' http-equiv"

   Domain: www.domain.com
   Type:   unauthorized
   Detail: Invalid response from
   http://www.domain.com/.well-known/acme-challenge/7vHwDXstyiY0wgECcR5zuS2jE57m8I3utszEkwj_mWw:
   "<.html>
   <.head><.title>404 Not Found</title></head>
   <.body bgcolor="white">
   <.center><.h1>404 Not Found</h1></center>
重要注意事项:
-服务器报告了以下错误:
域名:git.Domain.com
类型:未经授权
详细信息:来自的响应无效
http://git.domain.com/.well-known/acme-challenge/ZLsZwCsBU5LQn6mnzDBaD6MHHlhV3FP7ozenxaw4fow:
"

问题在于nginx配置。 我用最简单的配置文件替换了我的长配置文件:

server {
    listen 80;
    server_name domain.com www.domain.com git.domain.com;
    root /var/www/domain/;
}
然后我就可以颁发新的证书了

我的长配置文件的问题是(据我所知),我有以下几行代码:

location ~ /.well-known {
    allow all;
}
但它们应该是:

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

现在更新也可以了。

我也遇到了类似的问题。我的问题是,我有一条规则:

 location ~ /\. {
    access_log off;
    log_not_found off;
    deny all;
 }
在这些行中,取消对以“.”(点)开头的任何目录的每次访问由于某种奇怪的原因(我认为certbot脚本发生了某种变化),我无法以任何方式更新证书。经过近4个小时的研究,我发现这条线索最终帮助了我:

希望它能帮助别人

诀窍是在apache配置中添加以下内容:

DocumentRoot /var/lib/letsencrypt/http_challenges
    <Directory /var/lib/letsencrypt/http_challenges>
            Allow from All
    </Directory>
DocumentRoot/var/lib/letsencrypt/http\u挑战
通融

希望它对其他人有效!

值得一提的是,Certbot在尝试发布后将清除
。众所周知的
目录。因此,如果您认为问题在于文件生成而不是文件服务,请确保它不是。当出现权限错误时,您得到的错误是不同的。请注意在这种情况下,所有子域都使用相同的根目录。如果使用多个根目录,则每个根目录创建一个服务器是一个解决方案(可能不是最好的,但它可以工作)。这些解决方案对我不起作用。我有“location/.well{..allow all;}。Strace显示,在启动certbot之前手动创建acme质询目录时,certbot会删除该目录。然后它无法打开挑战文件。我认为这里的正则表达式应该匹配
~/.well-known
匹配
/.well-known/acme-challege/
,否?我也有这个问题(Nginx上Wordpress的默认设置),但这是一个有价值的规则,所以只需将它放在
位置~/.well-known
规则之后