diff --git a/packages/certd/src/dns-provider/dns-provider-factory.js b/packages/certd/src/dns-provider/dns-provider-factory.js index bb04a1d0..2669a585 100644 --- a/packages/certd/src/dns-provider/dns-provider-factory.js +++ b/packages/certd/src/dns-provider/dns-provider-factory.js @@ -1,7 +1,11 @@ export class DnsProviderFactory { static async createByType (type, options) { - const ProviderModule = await import('./impl/' + type + '.js') - const Provider = ProviderModule.default - return new Provider(options) + try { + const ProviderModule = await import('./impl/' + type + '.js') + const Provider = ProviderModule.default + return new Provider(options) + } catch (e) { + throw new Error('暂不支持此dnsProvider:' + type, e) + } } } diff --git a/packages/certd/src/index.js b/packages/certd/src/index.js index 1dc43f30..358284ac 100644 --- a/packages/certd/src/index.js +++ b/packages/certd/src/index.js @@ -92,6 +92,7 @@ export class Certd { await this.writeCert(cert) const certRet = await this.readCurrentCert() certRet.isNew = true + return certRet } async createDnsProvider (options) { @@ -110,6 +111,9 @@ export class Certd { async readCurrentCert () { const cert = await this.certStore.readCert() + if (cert == null) { + return null + } const { detail, expires } = this.getCrtDetail(cert.crt) const domain = this.getMainDomain(this.options.cert.domains) return { diff --git a/packages/certd/src/store/cert-store.js b/packages/certd/src/store/cert-store.js index d4ab76d9..14956f4a 100644 --- a/packages/certd/src/store/cert-store.js +++ b/packages/certd/src/store/cert-store.js @@ -39,9 +39,9 @@ export class CertStore { const crtKey = this.buildKey(newDir, this.safetyDomain + '.crt') const priKey = this.buildKey(newDir, this.safetyDomain + '.key') const csrKey = this.buildKey(newDir, this.safetyDomain + '.csr') - await this.store.set(crtKey, this.formatCert(cert.crt)) - await this.store.set(priKey, this.formatCert(cert.key)) - await this.store.set(csrKey, cert.csr) + await this.store.set(crtKey, this.formatCert(cert.crt.toString())) + await this.store.set(priKey, this.formatCert(cert.key.toString())) + await this.store.set(csrKey, cert.csr.toString()) await this.store.link(newDir, this.currentRootPath) @@ -56,6 +56,9 @@ export class CertStore { const priKey = this.buildKey(dir, this.safetyDomain + '.key') const csrKey = this.buildKey(dir, this.safetyDomain + '.csr') const crt = await this.store.get(crtKey) + if (crt == null) { + return null + } const key = await this.store.get(priKey) const csr = await this.store.get(csrKey) diff --git a/packages/node-acme-client b/packages/node-acme-client index 1799074c..e384bc3c 160000 --- a/packages/node-acme-client +++ b/packages/node-acme-client @@ -1 +1 @@ -Subproject commit 1799074c0d63c75b98e98486bc979e099b1ad4f3 +Subproject commit e384bc3c8e6ba95fc8dcab301c3cfaba8bb450f5