Https “让我们加密错误”;urn:acme:error:unauthorized";
我使用Lets加密并获取错误: urn:acme:error:unauthorized::客户端缺少足够的授权::分析密钥授权文件时出错:密钥授权无效:令牌格式错误 我尝试:sudo服务nginx-stopHttps “让我们加密错误”;urn:acme:error:unauthorized";,https,ssl-certificate,lets-encrypt,Https,Ssl Certificate,Lets Encrypt,我使用Lets加密并获取错误: urn:acme:error:unauthorized::客户端缺少足够的授权::分析密钥授权文件时出错:密钥授权无效:令牌格式错误 我尝试:sudo服务nginx-stop 但出现错误:nginx服务未加载,所以我在这方面遇到了很多麻烦。基本上,该错误意味着certbot在测试您拥有该站点时无法找到它正在查找的文件。这有许多潜在的原因,所以我将尝试进行总结,因为我在设置此项时遇到了其中的大多数原因。对于更多的参考资料,我发现比文档更有用 首先要注意的是,ngin
但出现错误:nginx服务未加载,所以我在这方面遇到了很多麻烦。基本上,该错误意味着certbot在测试您拥有该站点时无法找到它正在查找的文件。这有许多潜在的原因,所以我将尝试进行总结,因为我在设置此项时遇到了其中的大多数原因。对于更多的参考资料,我发现比文档更有用 首先要注意的是,nginx服务需要运行,acme授权才能工作。看起来你是说它不是,所以从旋转开始
sudo服务nginx启动
这样,这里的所有内容都基于您试图为其创建证书的网站的文件位置。如果您不知道它在哪里,它将位于相关配置文件的/etc/nginx
下,这主要取决于您的nginx版本,但通常位于/etc/nginx/nginx.conf
或/etc/nginx/sites enabled/[site name]
或/etc/nginx/conf/[something].conf
下。请注意,配置文件应该列在/etc/nginx/nginx.conf
下(至少是它的目录),因此您可以从那里开始
这是一个重要的文件夹,因为这是certbot需要修改的文件夹。它需要在嵌套的文件夹结构中创建一些文件,它试图从中读取的URL将返回这些文件中的数据。它尝试创建的文件夹将位于您为其提供的根目录下的文件夹:
/。著名的/acme挑战
然后,它将尝试创建一个名称不清楚的文件(我认为它是一个GUID),并从URL读取该文件。比如:
http://example.com/.well-known/acme-challenge/abcdefgh12345678
这一点很重要,因为如果根目录配置不当,url将与文件夹不匹配,授权将失败。如果运行certbot时,certbot没有对文件夹的写入权限,则不会创建该文件,因此授权将失败。我遇到了这两个问题
此外,您可能已经注意到上面的URL是http
而不是https
。这也很重要。我使用的是现有的加密工具,因此我必须配置NGINX,以允许我查看port80
下的./well-known文件夹树,而不是443
,同时仍将我的大部分数据保存在安全的https
url下。这两件事使得NGINX文件有点复杂,因此这里有一个示例配置供参考
server {
listen 80;
server_name example.com;
location '/.well-known/acme-challenge' {
default_type "text/plain";
root /home/example;
}
location '/' {
return 301 https://$server_name$request_uri;
}
}
这允许端口80
用于与certbot挑战相关的所有内容,同时保留我网站其余部分的安全性。您可以修改目录权限,以确保certbot有权写入文件,或者只需以root用户身份运行:
sudo./certbot auto certonly
获得证书后,还必须在配置中设置证书,但这超出了本问题的范围,所以