诺甘农圆盘

参考资料收集库

用户工具

站点工具


linux:duckdns

使用duckdns代理DNS验证获取SSL通配符证书

要使用 ACME DNS 质询获取证书,您可以按照上述说明使用此模块。但是,如果您有一个不同的域名(例如,my.example.com)CNAME 到您的 Duck DNS 域名,您有两个选择:

  1. 不使用该模块:使用与 的 DNS 提供商匹配的模块my.example.com
  2. 将挑战委托给 Duck DNS。

委托挑战实际上相当容易,并且如果 DNS 提供商my.example.com难以配置或速度很慢时可能会很有用:

由于 Let's Encrypt 在查找 DNS-01 验证的 TXT 记录时遵循 DNS 标准,因此您可以使用 CNAME 记录或 NS 记录将回答质询委托给其他 DNS 区域。这可用于将 _acme-challenge 子域委托给验证专用的服务器或区域。如果您的 DNS 提供商更新速度较慢,而您想委托给更新速度更快的服务器,也可以使用它。

假设您有my.example.com一个 CNAME 到example.duckdns.org。按照上述说明,您需要添加一个从_acme-challenge.my.example.com到 的CNAME example.duckdns.org。然后,在您的 Caddyfile 中,指示此模块覆盖与 Duck DNSAPI 通信时使用的域:

my.example.com {
	tls {
		dns duckdns <token> {
			override_domain example.duckdns.org
		}
	}
	...
}

如果您未设置override_domain,此模块将尝试要求 Duck DNS 更新my.example.com。Duck DNS 将返回错误,因为它不知道my.example.com。设置此值可解决此问题并允许 Caddy 请求与 匹配的证书my.example.com,但改为执行 DNS 质询example.duckdns.org

如下两个重点,缺一不可,不然一直提示各种不相关的错误,让你浪费时间debug

my.example.com CNAME记录指向 example.duckdns.org
_acme-challenge.my.example.com CNAME指向 example.duckdns.org

参考链接:https://github.com/caddy-dns/duckdns

linux/duckdns.txt · 最后更改: 2025/03/04 17:05 由 packingbox