From 95122e28609333f4df55c266e5434897954c0fb3 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Wed, 21 Aug 2024 10:34:50 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E4=BB=A3=E7=90=86=E7=9A=84=E6=83=85=E5=86=B5=E4=B8=8B=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E8=AF=81=E4=B9=A6=E5=A4=B1=E8=B4=A5=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/acme-client/src/api.js | 11 +++++++++++ .../plugin-cert/src/plugin/cert-plugin/acme.ts | 6 +++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/core/acme-client/src/api.js b/packages/core/acme-client/src/api.js index 2dddf1e2..60393164 100644 --- a/packages/core/acme-client/src/api.js +++ b/packages/core/acme-client/src/api.js @@ -3,6 +3,7 @@ */ const util = require('./util'); +const { log } = require('./logger'); /** * AcmeApi @@ -104,6 +105,16 @@ class AcmeApi { /* Set account URL */ if (resp.headers.location) { this.accountUrl = resp.headers.location; + const mapping = this.http.urlMapping; + if (mapping.mappings) { + // eslint-disable-next-line guard-for-in,no-restricted-syntax + for (const key in mapping.mappings) { + const url = mapping.mappings[key]; + if (this.accountUrl.indexOf(url) > -1) { + this.accountUrl = this.accountUrl.replace(url, key); + } + } + } } return resp; 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 e078b2e1..8be51bf7 100644 --- a/packages/plugins/plugin-cert/src/plugin/cert-plugin/acme.ts +++ b/packages/plugins/plugin-cert/src/plugin/cert-plugin/acme.ts @@ -43,7 +43,11 @@ export class AcmeService { } async getAccountConfig(email: string): Promise { - return (await this.userContext.getObj(this.buildAccountKey(email))) || {}; + const conf = (await this.userContext.getObj(this.buildAccountKey(email))) || {}; + if (conf.accountUrl?.indexOf("letsencrypt.proxy.handsfree.work")) { + conf.accountUrl = conf.accountUrl.replace("letsencrypt.proxy.handsfree.work", "acme-v02.api.letsencrypt.org"); + } + return conf; } buildAccountKey(email: string) {