diff --git a/.gitignore b/.gitignore index 5341c532..d38a05a6 100644 --- a/.gitignore +++ b/.gitignore @@ -19,24 +19,13 @@ gen /*.log /packages/ui/*/.idea - /packages/ui/*/node_modules - /packages/*/node_modules -/packages/ui/certd-server/tmp/ -/packages/ui/certd-ui/dist/ -/other -/dev-sidecar-test -/packages/core/certd/yarn.lock -/packages/test -/test/own /pnpm-lock.yaml -docker/image/workspace -/packages/core/lego tsconfig.tsbuildinfo test/**/*.js /packages/ui/certd-server/data/db.sqlite /packages/ui/certd-server/data/keys.yaml -/packages/pro/ \ No newline at end of file +/packages/pro/ 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 753d85c2..e652c48a 100644 --- a/packages/plugins/plugin-cert/src/plugin/cert-plugin/acme.ts +++ b/packages/plugins/plugin-cert/src/plugin/cert-plugin/acme.ts @@ -239,7 +239,10 @@ export class AcmeService { const privateKeyType = options.privateKeyType || "rsa_2048"; const privateKeyArr = privateKeyType.split("_"); const type = privateKeyArr[0]; - const size = parseInt(privateKeyArr[1]); + let size = 2048; + if (privateKeyArr.length > 1) { + size = parseInt(privateKeyArr[1]); + } if (type == "ec") { const name: any = "P-" + size; privateKey = await acme.crypto.createPrivateEcdsaKey(name); diff --git a/packages/plugins/plugin-cert/src/plugin/cert-plugin/base.ts b/packages/plugins/plugin-cert/src/plugin/cert-plugin/base.ts index 9e02f061..e919be7a 100644 --- a/packages/plugins/plugin-cert/src/plugin/cert-plugin/base.ts +++ b/packages/plugins/plugin-cert/src/plugin/cert-plugin/base.ts @@ -144,19 +144,23 @@ export abstract class CertApplyBasePlugin extends AbstractTaskPlugin { this._result.pipelineVars.certExpiresTime = dayjs(certReader.detail.notAfter).valueOf(); if (cert.pfx == null || cert.der == null) { - const converter = new CertConverter({ logger: this.logger }); - const res = await converter.convert({ - cert, - pfxPassword: this.pfxPassword, - }); - const pfxBuffer = fs.readFileSync(res.pfxPath); - cert.pfx = pfxBuffer.toString("base64"); + try { + const converter = new CertConverter({ logger: this.logger }); + const res = await converter.convert({ + cert, + pfxPassword: this.pfxPassword, + }); + const pfxBuffer = fs.readFileSync(res.pfxPath); + cert.pfx = pfxBuffer.toString("base64"); - const derBuffer = fs.readFileSync(res.derPath); - cert.der = derBuffer.toString("base64"); + const derBuffer = fs.readFileSync(res.derPath); + cert.der = derBuffer.toString("base64"); - this.logger.info("转换证书格式成功"); - isNew = true; + this.logger.info("转换证书格式成功"); + isNew = true; + } catch (e) { + this.logger.error("转换证书格式失败", e); + } } if (isNew) { @@ -171,8 +175,12 @@ export abstract class CertApplyBasePlugin extends AbstractTaskPlugin { const zip = new JSZip(); zip.file("cert.crt", cert.crt); zip.file("cert.key", cert.key); - zip.file("cert.pfx", Buffer.from(cert.pfx, "base64")); - zip.file("cert.der", Buffer.from(cert.der, "base64")); + if (cert.pfx) { + zip.file("cert.pfx", Buffer.from(cert.pfx, "base64")); + } + if (cert.der) { + zip.file("cert.der", Buffer.from(cert.der, "base64")); + } const content = await zip.generateAsync({ type: "nodebuffer" }); this.saveFile(filename, content); this.logger.info(`已保存文件:${filename}`);