From fd507f269253607e68c5c099c99e0de11636f229 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Tue, 25 Mar 2025 11:08:25 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96txt=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E6=95=88=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/acme-client/src/verify.js | 31 ++++++++++++++++++++----- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/packages/core/acme-client/src/verify.js b/packages/core/acme-client/src/verify.js index b09becff..8c1f03db 100644 --- a/packages/core/acme-client/src/verify.js +++ b/packages/core/acme-client/src/verify.js @@ -82,21 +82,40 @@ async function walkDnsChallengeRecord(recordName, resolver = dns) { } export async function walkTxtRecord(recordName) { + + const txtRecords = [] try { /* Default DNS resolver first */ - log('Attempting to resolve TXT with default DNS resolver first'); + log('从本地DNS服务器获取TXT解析记录'); const res = await walkDnsChallengeRecord(recordName); if (res && res.length > 0) { - return res; + for (const item of res) { + txtRecords.push(item) + } } - throw new Error('No TXT records found'); + + } catch (e) { + log(`本地获取TXT解析记录失败:${e.message}`) } - catch (e) { + + try{ /* Authoritative DNS resolver */ - log(`Error using default resolver, attempting to resolve TXT with authoritative NS: ${e.message}`); + log(`从域名权威服务器获取TXT解析记录`); const authoritativeResolver = await util.getAuthoritativeDnsResolver(recordName); - return await walkDnsChallengeRecord(recordName, authoritativeResolver); + const res = await walkDnsChallengeRecord(recordName, authoritativeResolver); + if (res && res.length > 0) { + for (const item of res) { + txtRecords.push(item) + } + } + }catch (e) { + log(`权威服务器获取TXT解析记录失败:${e.message}`) } + + if (txtRecords.length === 0) { + throw new Error(`没有找到TXT解析记录(${recordName})`); + } + return txtRecords; } /**