From 99ff879d93658c29ea493a4bde7e9e3f85996d64 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 28 Mar 2025 23:27:24 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20dns=E6=94=AF=E6=8C=81=E7=81=AB=E5=B1=B1?= =?UTF-8?q?=E5=BC=95=E6=93=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/acme-client/src/verify.js | 4 +- packages/core/pipeline/.gitignore | 1 + packages/core/pipeline/src/plugin/group.ts | 1 + .../public/static/icons/demo_index.html | 48 +++- .../public/static/icons/iconfont.css | 10 +- .../public/static/icons/iconfont.js | 2 +- .../public/static/icons/iconfont.json | 14 ++ .../public/static/icons/iconfont.svg | 4 + packages/ui/certd-server/.gitignore | 1 + packages/ui/certd-server/package.json | 1 + packages/ui/certd-server/src/plugins/index.ts | 1 + .../src/plugins/plugin-volcengine/access.ts | 36 +++ .../src/plugins/plugin-volcengine/client.ts | 182 ++++++++++++++ .../src/plugins/plugin-volcengine/index.ts | 3 + .../plugin-volcengine/plugins/index.ts | 0 .../volcengine-dns-provider.ts | 93 ++++++++ pnpm-lock.yaml | 225 +++++++++--------- 17 files changed, 514 insertions(+), 112 deletions(-) create mode 100644 packages/ui/certd-server/src/plugins/plugin-volcengine/access.ts create mode 100644 packages/ui/certd-server/src/plugins/plugin-volcengine/client.ts create mode 100644 packages/ui/certd-server/src/plugins/plugin-volcengine/index.ts create mode 100644 packages/ui/certd-server/src/plugins/plugin-volcengine/plugins/index.ts create mode 100644 packages/ui/certd-server/src/plugins/plugin-volcengine/volcengine-dns-provider.ts diff --git a/packages/core/acme-client/src/verify.js b/packages/core/acme-client/src/verify.js index 2b2e840c..7587d71a 100644 --- a/packages/core/acme-client/src/verify.js +++ b/packages/core/acme-client/src/verify.js @@ -133,7 +133,9 @@ export async function walkTxtRecord(recordName) { async function verifyDnsChallenge(authz, challenge, keyAuthorization, prefix = '_acme-challenge.') { const recordName = `${prefix}${authz.identifier.value}`; log(`本地校验TXT记录): ${recordName}`); - const recordValues = await walkTxtRecord(recordName); + let recordValues = await walkTxtRecord(recordName); + //去重 + recordValues = [...new Set(recordValues)]; log(`DNS查询成功, 找到 ${recordValues.length} 条TXT记录`); if (!recordValues.length || !recordValues.includes(keyAuthorization)) { throw new Error(`没有找到需要的DNS TXT记录: ${recordName},期望:${keyAuthorization},结果:${recordValues}`); diff --git a/packages/core/pipeline/.gitignore b/packages/core/pipeline/.gitignore index c90f5f96..09c84286 100644 --- a/packages/core/pipeline/.gitignore +++ b/packages/core/pipeline/.gitignore @@ -26,3 +26,4 @@ dist-ssr test/user.secret.* test/**/*.js src/**/*.spec.ts +.test.mjs diff --git a/packages/core/pipeline/src/plugin/group.ts b/packages/core/pipeline/src/plugin/group.ts index 7e5148db..faa0e42d 100644 --- a/packages/core/pipeline/src/plugin/group.ts +++ b/packages/core/pipeline/src/plugin/group.ts @@ -20,6 +20,7 @@ export const pluginGroups = { aliyun: new PluginGroup("aliyun", "阿里云", 2), huawei: new PluginGroup("huawei", "华为云", 3), tencent: new PluginGroup("tencent", "腾讯云", 4), + volcengine: new PluginGroup("volcengine", "火山引擎", 4), qiniu: new PluginGroup("qiniu", "七牛云", 5), aws: new PluginGroup("aws", "亚马逊云", 6), host: new PluginGroup("host", "主机", 7), diff --git a/packages/ui/certd-client/public/static/icons/demo_index.html b/packages/ui/certd-client/public/static/icons/demo_index.html index f646df86..abd6d18e 100644 --- a/packages/ui/certd-client/public/static/icons/demo_index.html +++ b/packages/ui/certd-client/public/static/icons/demo_index.html @@ -54,6 +54,18 @@