diff --git a/packages/ui/certd-server/src/plugins/plugin-ksyun/access.ts b/packages/ui/certd-server/src/plugins/plugin-ksyun/access.ts index 6c18bb49..20c5d5d7 100644 --- a/packages/ui/certd-server/src/plugins/plugin-ksyun/access.ts +++ b/packages/ui/certd-server/src/plugins/plugin-ksyun/access.ts @@ -83,7 +83,7 @@ export class KsyunAccess extends BaseAccess { method:"POST", url:"/2016-09-01/cert/SetCertificate", data:{ - CertificateId: parseInt(opts.certId), + CertificateId: opts.certId, CertificateName: opts.certName, ServerCertificate: opts.cert.crt, PrivateKey: opts.cert.key @@ -93,6 +93,24 @@ export class KsyunAccess extends BaseAccess { return res } + async getCert(opts:{client:KsyunClient,certId:string}){ + const res = await opts.client.doRequest({ + action: "GetCertificates", + version: "2016-09-01", + method:"POST", + url:"/2016-09-01/cert/GetCertificates", + data:{ + CertificateId: opts.certId, + } + }) + this.ctx.logger.info(res) + const list = res.Certificates + if (list.length > 0) { + return list[0] + } + throw new Error(`未找到证书:${opts.certId}`) + } + async getCdnClient() { return new KsyunClient({ accessKeyId: this.accessKeyId, diff --git a/packages/ui/certd-server/src/plugins/plugin-ksyun/client.ts b/packages/ui/certd-server/src/plugins/plugin-ksyun/client.ts index 7a25af0d..072e4c9f 100644 --- a/packages/ui/certd-server/src/plugins/plugin-ksyun/client.ts +++ b/packages/ui/certd-server/src/plugins/plugin-ksyun/client.ts @@ -38,6 +38,7 @@ export class KsyunClient { try{ return await this.http.request(config) }catch (e) { + this.logger.error(e.request) if (e.response?.data?.Error?.Message){ throw new Error(e.response?.data?.Error?.Message) } diff --git a/packages/ui/certd-server/src/plugins/plugin-ksyun/plugins/plugin-refresh-cert.ts b/packages/ui/certd-server/src/plugins/plugin-ksyun/plugins/plugin-refresh-cert.ts index 786ab6ff..a3c1c0b7 100644 --- a/packages/ui/certd-server/src/plugins/plugin-ksyun/plugins/plugin-refresh-cert.ts +++ b/packages/ui/certd-server/src/plugins/plugin-ksyun/plugins/plugin-refresh-cert.ts @@ -75,18 +75,22 @@ export class KsyunRefreshCDNCert extends AbstractTaskPlugin { async execute(): Promise { const access = await this.getAccess(this.accessId); - const certReader = new CertReader(this.cert) - const certName = certReader.buildCertName() const client = await access.getCdnClient(); - for (const item of this.certList) { - this.logger.info(`----------- 开始更新证书:${item}`); + for (const certId of this.certList) { + this.logger.info(`----------- 开始更新证书:${certId}`); + + const oldCert = await access.getCert({ + client, + certId:certId + }) + await access.updateCert({ client, - certId: item, - certName, + certId: certId, + certName: oldCert.CertificateName, cert: this.cert }); - this.logger.info(`----------- 更新证书${item}成功`); + this.logger.info(`----------- 更新证书${certId}成功`); } this.logger.info("部署完成");