让我们加密 - “DNS ...查询查找CAA时超时...”

让我们加密 - “DNS ...查询查找CAA时超时...”

几个月来,我一直在几个域名上使用 Let's Encrypt,总体来说运行良好。我正在更新证书,其中一个域名出现以下错误消息(在 处返回的 JSON 对象中challenges[1].error.detail):

DNS 问题:查询 [somedomain.com] 的 CAA 时超时

我尝试查找错误,但谷歌也找不到任何结果(截至撰写本文时)。对于反对者:是的,这个域名(与错误消息中显示的完全一致)是有效的,并且完全可以访问,并且可以从远处 ping 通。

然而,这里有一个重要的困境(线索),即为什么会出现这种情况。我已将此域的设置设置为将所有流量重定向到 HTTPS当我第一次尝试续订这个特定域名时。LE 似乎尝试通过 HTTPS 访问服务器,但失败了。从那时起,我更改了服务器设置,以便域不会重定向到 acme-challenge 文件夹的 HTTPS。问题似乎是 LE 记得之前的请求被重定向了,现在它不想访问 HTTP URL。有challenges[1].validationRecord两个条目,一个在 [0] 表示 HTTP,一个在 [1] 表示 HTTPS,因此显然 LE 知道也可以通过 HTTP 地址访问服务器。此外,我可以通过给出的 URL 访问验证检查文件(在相关域上),challenges[1].validationRecord[0].url没有任何问题。

我的问题是:如何让 LE 忘记我尝试请求证书,同时将服务器设置为将所有流量重定向到 HTTPS?因此,如何让 LE 使用 HTTP URL?

答案1

Let's Encrypt 不会跟踪之前的重定向。您可以使用 HTTP 或 HTTPs 版本进行验证。

您的错误凸显了另一个问题

DNS 问题:查询 [somedomain.com] 的 CAA 时超时

验证系统无法完成域的 DNS 查找。可能是您使用的 DNS 提供商出现了问题,或者 Let's Encrypt 服务器和您的服务器之间的路由出现了网络问题。

这是一个类似问题,在官方 LE 社区论坛上有描述。

我认为问题出在 DN 查找步骤上。没有 CAA 记录。不知何故域名服务器花了很长时间才做出响应。以下是 Osiris 发送给我的一些结果。他提到获取 IP 很快,但“最后一步通常很慢”。速度慢可能是 CAA 检查步骤失败的原因。

根据原始错误和这些时间,您使用的 DNS 服务器或从 Let's Encrypt 数据中心到它们的路由很可能存在一些问题,从而导致超时。

调查您的 DNS 设置,如果查找成功,请稍后重试提交证书请求。

答案2

最新版本的 acme 客户端通常会显示超时的目标 ip。看来客户端在证书请求例程期间向不同的名称服务器发出查询。这些服务器包括但不限于机器的默认 DNS 服务器,以及您正在使用的域的权威名称服务器。

我曾见过这样的情况,在网络连接完美的情况下,通往权威名称服务器的路由却被公司防火墙阻止了。(我知道,这很奇怪)。因此,虽然所有名称(包括这个特定域)都完美解析,但当 acme 客户端尝试直接联系权威名称服务器时,该过程失败了。通过更改防火墙规则让请求通过,这个问题得到了解决。

因此对于 2018 年及以后 - 查看日志,它们通常会告诉您哪个 IP 地址超时并检查从 acme 客户端到该地址的连接。

答案3

切换到新的服务器机器(不同的 IP)后出现此错误。

renew命令因上述错误而失败时。

使用certonly命令运行 certbot 有效(不知道为什么!)。

相关内容