安装LetsEncrypt SSL时出错:(http-01):urn:acme:error:connection ::服务器无法连接到客户端以validation域

我正在尝试在我的服务器上安装LetsEncrypt (我拥有root用户的SSH访问权限),用于staging.dnslaude.com – 这是一个可公开访问的域,指向213.212.81.89

服务器运行ubuntu 16.04 ,和一个nginxnetworking服务器。 下面是nginxconfiguration:

 server { listen 80; server_name staging.dnslaude.com; root /path/to/webroot; location ^~ /.well-known/acme-challenge/ { try_files $uri $uri/ =404; } rewrite ^(.*) https://$host$1 permanent; } server { listen 443; ssl on; ssl_certificate /path/to/self/signed/certificate.crt; ssl_certificate_key /path/to/key.key; server_name staging.dnslaude.com; root /path/to/webroot; # .... location ^~ /.well-known/acme-challenge/ { try_files $uri $uri/ =404; } } 

你可以看到, nginxconfiguration似乎工作,因为我已经在这里手动将文件放在acme-challenge文件夹中。

但是,当我运行命令:

 letsencrypt certonly --webroot -w /path/to/webroot -d staging.dnslaude.com 

它返回以下错误:

授权程序失败。 staging.dnslaude.com(http-01):urn:acme:error:connection ::服务器无法连接到客户端以validation域::无法连接到staging.dnslaude.com

重要注意事项: – 服务器报告以下错误:

域:staging.dnslaude.comtypes:连接详细信息:无法连接到staging.dnslaude.com

要解决这些错误,请确保您的域名是
input正确,并为该域的DNS Alogging
包含正确的IP地址。 另外,请检查
你的电脑有一个可公开路由的IP地址,没有
防火墙正在阻止服务器与之通信
客户。 如果你使用webroot插件,你也应该validation
您正在从您提供的webrootpath提供文件。

我遵循这里列出的基本设置指南,并尝试了各种configuration变化,如在这里build议的变化。 但是,我无法越过上述错误 – 并且不能看到日志文件中的任何内容来指示原因。

有什么build议么?

你的nginxconfiguration看起来是正确的。

在预感上,我对你的域名运行nmap (因为你把它包含在你的问题中)。 看来您目前正在过滤80端口,所以LetsEncrypt无法连接到外部并validation。

您需要确保端口80可以在相关服务器的本地防火墙上进行外部访问(以及任何可能位于虚拟主机提供商或类似服务器上的ACL)。

如果您将http-01挑战从httpredirect到https,也可能发生此错误。 .well-known / acme-challenge目录需要通过端口80上的http访问。