无法使用 nginx 配置 certbot 以接受 https
Posted
技术标签:
【中文标题】无法使用 nginx 配置 certbot 以接受 https【英文标题】:unable to config certbot with nginx to accept https 【发布时间】:2019-07-28 18:12:28 【问题描述】:当我尝试使用 this tutorial 和其他类似的 certboot 配置我的 nginx 应用程序时。我总是使用 certbot 的相同 amswer
将调试日志保存到 /var/log/letsencrypt/letsencrypt.log 插件 selected: Authenticator nginx, Installer nginx 获取新的 证书执行以下质询:http-01 质询 sicocme.enterpriserealdomain.com http-01 挑战 www.sicocme.enterpriserealdomain.com 正在等待验证... 清理挑战 授权程序失败。 sicocme.enterpriserealdomain.com (http-01): urn:ietf:params:acme:error:connection :: 服务器无法连接 到客户端验证域::dns::DNS问题:NXDOMAIN 查找 sicocme.enterpriserealdomain.com 的 A, www.sicocme.enterpriserealdomain.com (http-01): urn:ietf:params:acme:error:connection :: 服务器无法连接 到客户端验证域::dns::DNS问题:NXDOMAIN 为 www.sicocme.enterprisrealdomain.com 查找 A
重要提示: - 服务器报错如下:
域名:sicocme.enterprisrealdomain.com 类型:connection 详情:dns :: DNS 问题:NXDOMAIN 查找 A for sicocme.enterpriserealdomain.com
域名:www.sicocme.enterpriserealdomain.com 类型:连接 详情:dns :: DNS 问题:NXDOMAIN 查找 A for www.sicocme.enterpriserealdomain.com
要修复这些错误,请确保您的域名是 正确输入和该域的 DNS A/AAAA 记录 包含正确的 IP 地址。此外,请检查 您的计算机有一个可公开路由的 IP 地址,并且没有 防火墙阻止服务器与 客户。如果您使用的是 webroot 插件,您还应该验证 您正在从您提供的 webroot 路径提供文件。
当我检查我的域服务器时,具有正确 IP 地址的 www 和 no-www 都存在 A 记录。服务器可以上网,可以通过IP或域名访问或被访问,证明DNS域识别本机并存在
我也让舒尔允许使用 ufw 的正确端口
To Action From
-- ------ ----
443/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
22/tcp ALLOW Anywhere
5432/tcp ALLOW Anywhere
Nginx Full ALLOW Anywhere
443/tcp (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
22/tcp (v6) ALLOW Anywhere (v6)
5432/tcp (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)
为什么会发生这种情况? 提前致谢!
【问题讨论】:
【参考方案1】:问题是您的 DNS 记录尚未传播。请参阅下面的网址 - https://dnsmap.io/#A/sicocme.enterpriserealdomain.com
确保您的 DNS 记录得到传播,一切正常。
【讨论】:
我的网络是私人网络。无意在外部提供商中注册此 DNS 服务器。如何检查记录在我的网络上的传播情况?此网络未暴露在互联网上 certbot 部署letsencrypt 证书,这需要对域的所有者进行验证。目前它可以使用 DNS 记录验证或 http 质询来做到这一点。无论哪种情况,您都需要验证您是否拥有该域。 但我不知道为什么找不到我的 DNS。在这样的情况下我该怎么办?如何让letsencrypt在本地通过记录或http质询通过DNS验证? 您需要为您的域添加 DNS 记录以进行验证。 我已经添加了一条 A 和一条 CNAME 记录。在端口 80 中监听时,我可以像http://sicocme.enterpriserealdomain.com
这样访问我的应用程序。这不是证明 DNS 配置正确吗?我是否需要添加另一种记录。主机文件也已更新以适应此配置【参考方案2】:
这是同样的问题,但与 Apache
检查服务器设置的A记录然后
sudo certbot --apache -d DOMAIN_WOTHOUT_WWW -d DOMAIN_WITH_WWW
然后就可以正常使用了。
【讨论】:
【参考方案3】:您应该为 www.yourdomain.com
(对于 www)添加新的 DNS 记录。
我认为您只为“@”添加了 DNS 记录 请检查:
【讨论】:
以上是关于无法使用 nginx 配置 certbot 以接受 https的主要内容,如果未能解决你的问题,请参考以下文章
certbot在Centos7上配置合法签名证书,实现nginx的https访问
certbot在Centos7上配置合法签名证书,实现nginx的https访问
certbot在Centos7上配置合法签名证书,实现nginx的https访问