diff --git a/packages/core/pipeline/src/plugin/api.ts b/packages/core/pipeline/src/plugin/api.ts index f6184dd9..e47d6675 100644 --- a/packages/core/pipeline/src/plugin/api.ts +++ b/packages/core/pipeline/src/plugin/api.ts @@ -228,13 +228,10 @@ export abstract class AbstractTaskPlugin implements ITaskPlugin { } buildCertName(domain: string) { - if (domain.includes("*")) { - domain = domain.replaceAll("*", "_"); - } + domain = domain.replaceAll("*", "_").replaceAll(".", "_"); return `${domain}_${dayjs().format("YYYYMMDDHHmmssSSS")}`; } - async onRequest(req: PluginRequestHandleReq) { if (!req.action) { throw new Error("action is required"); diff --git a/packages/plugins/plugin-cert/src/plugin/cert-plugin/cert-reader.ts b/packages/plugins/plugin-cert/src/plugin/cert-plugin/cert-reader.ts index 1c331d8b..e2478bfa 100644 --- a/packages/plugins/plugin-cert/src/plugin/cert-plugin/cert-reader.ts +++ b/packages/plugins/plugin-cert/src/plugin/cert-plugin/cert-reader.ts @@ -93,6 +93,11 @@ export class CertReader { return domains; } + getAltNames() { + const { detail } = this.getCrtDetail(); + return detail.domains.altNames; + } + static getMainDomain(crt: string) { const { detail } = CertReader.readCertDetail(crt); return detail.domains.commonName; @@ -174,8 +179,14 @@ export class CertReader { buildCertFileName(suffix: string, applyTime: any, prefix = "cert") { const detail = this.getCrtDetail(); let domain = detail.detail.domains.commonName; - domain = domain.replace(".", "_").replace("*", "_"); + domain = domain.replaceAll(".", "_").replaceAll("*", "_"); const timeStr = dayjs(applyTime).format("YYYYMMDDHHmmss"); return `${prefix}_${domain}_${timeStr}.${suffix}`; } + + buildCertName() { + let domain = this.getMainDomain(); + domain = domain.replaceAll("*", "_").replaceAll("*", "_"); + return `${domain}_${dayjs().format("YYYYMMDDHHmmssSSS")}`; + } } diff --git a/packages/plugins/plugin-lib/src/aliyun/lib/ssl-client.ts b/packages/plugins/plugin-lib/src/aliyun/lib/ssl-client.ts index 380e1115..acffc414 100644 --- a/packages/plugins/plugin-lib/src/aliyun/lib/ssl-client.ts +++ b/packages/plugins/plugin-lib/src/aliyun/lib/ssl-client.ts @@ -83,7 +83,7 @@ export class AliyunSslClient { method: "POST", }; - this.opts.logger.info("开始上传证书"); + this.opts.logger.info(`开始上传证书:${req.name}`); const ret: any = await client.request("UploadUserCertificate", params, requestOption); this.checkRet(ret); this.opts.logger.info("证书上传成功:aliyunCertId=", ret.CertId); diff --git a/packages/plugins/plugin-lib/src/tencent/lib/ssl-client.ts b/packages/plugins/plugin-lib/src/tencent/lib/ssl-client.ts index a73d6ec1..9bc263db 100644 --- a/packages/plugins/plugin-lib/src/tencent/lib/ssl-client.ts +++ b/packages/plugins/plugin-lib/src/tencent/lib/ssl-client.ts @@ -50,9 +50,22 @@ export class TencentSslClient { const ret = await client.UploadCertificate(params); this.checkRet(ret); this.logger.info("证书上传成功:tencentCertId=", ret.CertificateId); + await this.switchCertNotify([ret.CertificateId], true); return ret.CertificateId; } + async switchCertNotify(certIds: string[], disabled: boolean) { + const client = await this.getSslClient(); + const params = { + CertificateIds: certIds, + SwitchStatus: disabled ? 1 : 0, //1是忽略通知,0是不忽略 + }; + const ret = await client.ModifyCertificatesExpiringNotificationSwitch(params); + this.checkRet(ret); + this.logger.info(`关闭证书${certIds}过期通知成功`); + return ret.RequestId; + } + async deployCertificateInstance(params: any) { const client = await this.getSslClient(); const res = await client.DeployCertificateInstance(params); diff --git a/packages/ui/certd-client/src/api/service.ts b/packages/ui/certd-client/src/api/service.ts index 7a16c726..c65c0ac5 100644 --- a/packages/ui/certd-client/src/api/service.ts +++ b/packages/ui/certd-client/src/api/service.ts @@ -140,7 +140,7 @@ function createRequestFunction(service: any) { headers: { "Content-Type": get(config, "headers.Content-Type", "application/json"), }, - timeout: 20000, + timeout: 30000, baseURL: env.API, data: {}, }; diff --git a/packages/ui/certd-server/src/plugins/plugin-farcdn/access.ts b/packages/ui/certd-server/src/plugins/plugin-farcdn/access.ts index 4aacb5f3..21f4aff8 100644 --- a/packages/ui/certd-server/src/plugins/plugin-farcdn/access.ts +++ b/packages/ui/certd-server/src/plugins/plugin-farcdn/access.ts @@ -70,9 +70,10 @@ export class FarcdnAccess extends BaseAccess { return "ok"; } }catch (e) { - if(e.message.indexOf("null")){ + if(e.message.indexOf("11111111")>-1){ return "ok"; } + throw e; } throw "测试失败,未知错误"; @@ -103,10 +104,12 @@ export class FarcdnAccess extends BaseAccess { const params = { sslCertId, }; - return await this.doRequest({ + const res= await this.doRequest({ url: "/findSSLCertConfig", data: params }); + this.ctx.logger.info(`找到证书${sslCertId}: name=${res.name},domain=${res.commonNames},dnsNames=${res.dnsNames}`); + return res } async updateSSLCert(req:{ @@ -163,10 +166,10 @@ export class FarcdnAccess extends BaseAccess { data: params }); - if (res.data.code === 200) { - return res.data.data; + if (res.code === "200") { + return res.data; } - throw new Error(res.data.message); + throw new Error(res.message); } } diff --git a/packages/ui/certd-server/src/plugins/plugin-farcdn/plugins/plugin-refresh-cert.ts b/packages/ui/certd-server/src/plugins/plugin-farcdn/plugins/plugin-refresh-cert.ts index 8d91f6ec..36fed3e7 100644 --- a/packages/ui/certd-server/src/plugins/plugin-farcdn/plugins/plugin-refresh-cert.ts +++ b/packages/ui/certd-server/src/plugins/plugin-farcdn/plugins/plugin-refresh-cert.ts @@ -78,7 +78,7 @@ export class FarcdnRefreshCert extends AbstractPlusTaskPlugin { } async onGetCertList() { - throw new Error("暂无查询证书列表接口"); + throw new Error("暂无查询证书列表接口,您需要手动输入证书id"); // const access = await this.getAccess(this.accessId); // const res = await access.doRequest({