Tom*_*ord 3 ssl nginx ssl-certificate lets-encrypt
我正在尝试LetsEncrypt
在我的服务器上安装(我有 root SSH 访问权限),因为staging.dnslaude.com
- 这是一个可公开访问的域,指向213.212.81.89
.
服务器正在运行ubuntu 16.04
,还有一个nginx
网络服务器。下面是nginx
配置:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
您可以看到nginx
配置似乎有效,因为我已手动将文件放置在此处的acme-challenge
文件夹中。
但是,当我运行命令时:
letsencrypt certonly --webroot -w /path/to/webroot -d staging.dnslaude.com
Run Code Online (Sandbox Code Playgroud)
它返回以下错误:
授权程序失败。staging.dnslaude.com (http-01): urn:acme:error:connection :: 服务器无法连接到客户端以验证域 :: 无法连接到 staging.dnslaude.com
重要说明: - 服务器报告了以下错误:
域:staging.dnslaude.com 类型:连接详细信息:无法连接到 staging.dnslaude.com
要修复这些错误,请确保您的域名
输入正确,并且该域的 DNS A 记录
包含正确的 IP 地址。此外,请检查
您的计算机是否具有可公开路由的 IP 地址,并且没有
防火墙阻止服务器与
客户端通信。如果您正在使用 webroot 插件,您还应该验证
您正在从您提供的 webroot 路径提供文件。
我遵循了此处概述的基本设置指南,并尝试了各种配置变化,例如此处建议的那些。但是,我无法克服上述错误 - 并且无法在日志文件中看到任何指示原因的内容。
有什么建议?
您的 nginx 配置看起来正确。
凭直觉,我nmap
反对您的域(因为您将其包含在您的问题中);看起来您当前正在过滤端口 80,因此 LetsEncrypt 无法从外部连接并进行验证。
您需要确保端口 80 在相关服务器的本地防火墙上可以从外部访问(以及可能存在于虚拟主机提供商或类似位置的任何 ACL)。
归档时间: |
|
查看次数: |
5005 次 |
最近记录: |