make ACME delegation easier and more robust
1 file changed, 20 insertions(+), 1 deletion(-)
changed files
M dnsconfig.js → dnsconfig.js
@@ -18,6 +18,25 @@ .join(' ') } /** + * @param {string} target + */ +function ensureAbsolute(target) { + return target.endsWith('.') ? target : target + '.' +} + +/** + * @param {string} name + * @param {string} acmeTarget + */ +function acmeDelegate(name, acmeTarget) { + return CNAME( + name === '@' ? '_acme-challenge' : '_acme-challenge.' + name, + ensureAbsolute(acmeTarget), + TTL('15m'), + ) +} + +/** * @param {string} name * @param {string} [acmeTarget] */@@ -29,7 +48,7 @@ alpn: ['h2'], })), ] if (acmeTarget != null) { - records.push(CNAME(name === '@' ? '_acme-challenge' : '_acme-challenge.' + name, acmeTarget)) + records.push(acmeDelegate(name, acmeTarget)) } return records