子域 _acme-challenge 是否受到保护?

Cee*_*esz 5 domain-name-system subdomain certificate-authority lets-encrypt

我正在研究 Let's Encrypt 的 DNS-01 挑战;我有一个关于子域过程的问题 [1]。

比方说,网站example.com 提供免费的子域;是什么阻止我通过声明 _acme-challenge.example.com 子域来处理 DNS-01 挑战来请求 *.example.com 的 Let's Encrypt 通配符证书?

ACME 协议(或其他任何协议)中是否有任何内容阻止我这样做?

[1] = https://letsencrypt.org/docs/challenge-types/#dns-01-challenge

Esa*_*nen 5

通常,提供免费/自定义子域的站点会提供A记录,而 ACME DNS-01 挑战需要添加TXT记录。这将使您的建议不太可能

如果站点允许TXT为子域添加任意记录并且不保留 . _acme-challenge,则协议中没有任何内容可以防止滥用此类功能,这将是一个易受攻击的服务。然而,这是一个非常罕见的用例,以至于在设计这样的协议时没有人会专门考虑这一点。

幸运的是,如果发生这种情况,Let's Encrypt 证书将在三个月后过期,即使无法访问其私钥,也可以撤销证书,仅适用于以下情况:

如果有人在破坏您的主机或 DNS 后颁发了证书,您将希望在重新获得控制权后撤销该证书。为了吊销证书,Let's Encrypt 需要确保您控制该证书中的域名(否则人们可能会在未经许可的情况下吊销彼此的证书)!为了验证此控制,Let's Encrypt 使用与验证控制发行相同的方法:您可以在 DNS TXT 记录中放置一个值或将一个文件放置在 HTTP 服务器上。- -

验证对要撤销的证书中所有域名的控制后,您可以从 crt.sh 下载证书,然后继续撤销证书,就像您已颁发证书一样:

certbot revoke --cert-path /PATH/TO/downloaded-cert.pem
Run Code Online (Sandbox Code Playgroud)