Let's Encrypt:为什么 DNS 挑战是静态的?

Let's Encrypt:为什么 DNS 挑战是静态的?

据我了解,LetsEncrypt DNS 验证的工作原理是将静态 TXT 记录设置到 DNS(基本上只是一个随机数),然后由 LetsEncrypt 服务器检查。

当我第一次听说它时,我非常兴奋,并期待着更复杂的东西:公钥存储在我的域的 DNS 中。然后,为了进行验证,我创建了一个签名消息,LetsEncrypt 服务器检查签名是否有效。由于 DNS 中的公钥和我拥有的私钥,这证明了我控制着该域。

发现它不能以这种方式工作有点令人失望:它需要手动交互,甚至需要更新新的 TXT 记录。

不使用签名方法是否有技术原因?如果没有,LetsEncrypt 没有实现它的原因是什么?

答案1

我相信你思考发生的事情并不是真正发生的事情。Let's Encrypt 遵循 IETF ACME 工作组的草案的当前版本ACME 协议在该草案中,第8.5节它要求使用随机字符串(在挑战中提供)和帐户密钥作为创建 TXT 记录值的第一步。

客户端通过从质询中提供的“令牌”值和客户端的帐户密钥构建密钥授权来响应此质询。然后,客户端计算 SHA-256 摘要[FIPS180-4]密钥授权。

拥有帐户密钥和控制 DNS 应该足以证明对域的控制以及与请求证书的帐户的连接。与帐户关联的公钥不会在 DNS 中公开,并由 LE 持有,而私钥应该就像任何其他私钥一样,安全地保存在服务器上。

那么,你最后一个问题,不使用签名方法是否有技术原因?如果没有,LetsEncrypt 没有实现它的原因是什么?似乎没有抓住要点。签名用过的。

相关内容