LetsEncrypt 挑战和 SRV 记录

LetsEncrypt challenges and SRV records

SRV 记录允许在不同于 A/AAAA 记录指示的主机上托管特定域(通常为 XMPP)的服务。但是,根据我在文档中看到的内容,提供服务的主机仍然必须具有原始域名授权的证书。

所以:有什么好的解决方案可以让我在不同机器上为同一域 运行 一个安全的 XMPP 服务器和一个 HTTP 服务器?

例如,考虑 example.com 的这个区域:

@ 10800 IN A 0.0.0.0
_xmpp-client._tcp 10800 IN SRV 5 0 5222 xmpp.example.com.
_xmpp-server._tcp 10800 IN SRV 5 0 5269 xmpp.example.com.
xmpp 10800 IN A 0.0.0.1

0.0.0.1 的服务器必须有一个证书来验证名称 example.com,但只有 0.0.0.0(作为 example.com 的 A 记录)可以从 LetsEncrypt 获取该证书.

我是否只是...在 0.0.0.0 上生成证书,然后每次都通过网络传输它?还是暂时将 web 服务器设置在 0.0.0.0 上以将 /.well-known/acme-challenge/ 请求转发到 0.0.0.1?这些似乎都不是很健壮或安全。

SRV 记录在无处不在的 https 世界中基本上无法使用吗?

啊。

LetsEncrypt支持其他不依赖A记录的挑战;特别是 DNS 挑战:https://datatracker.ietf.org/doc/html/draft-ietf-acme-acme-01#section-7.5

这只需要 XMPP 服务器能够访问 DNS 注册商的 API 以允许其临时设置 TXT 记录。