From 773cada57a01fb28ea8602062aaeec3d45109ea9 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 19 Dec 2025 10:08:28 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20ip=E8=AF=81=E4=B9=A6=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugins/plugin-cert/src/plugin/cert-plugin/acme.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/plugins/plugin-cert/src/plugin/cert-plugin/acme.ts b/packages/plugins/plugin-cert/src/plugin/cert-plugin/acme.ts index dce677c2f..ce196cb3f 100644 --- a/packages/plugins/plugin-cert/src/plugin/cert-plugin/acme.ts +++ b/packages/plugins/plugin-cert/src/plugin/cert-plugin/acme.ts @@ -233,13 +233,22 @@ export class AcmeService { // const origDomain = punycode.toUnicode(domain); const origFullDomain = punycode.toUnicode(fullDomain); + + const isIp = utils.domain.isIp(origFullDomain); + function checkIpChallenge(type: string) { + if (isIp) { + throw new Error(`IP证书不支持${type}校验方式,请选择HTTP方式校验`); + } + } if (providers.domainsVerifyPlan) { //按照计划执行 const domainVerifyPlan = providers.domainsVerifyPlan[origFullDomain]; if (domainVerifyPlan) { if (domainVerifyPlan.type === "dns") { + checkIpChallenge("dns"); dnsProvider = domainVerifyPlan.dnsProvider; } else if (domainVerifyPlan.type === "cname") { + checkIpChallenge("cname"); const cname: CnameVerifyPlan = domainVerifyPlan.cnameVerifyPlan; if (cname) { dnsProvider = cname.dnsProvider; @@ -274,6 +283,7 @@ export class AcmeService { } const dnsChallenge = getChallenge("dns-01"); + checkIpChallenge("dns"); return await doDnsVerify(dnsChallenge, fullRecord, dnsProvider); }