fix: admin/internet: multidomain certificate renewal wasn't working

Massimo Melina committed Mar 19, 2024 at 10:37 UTC ddb3bf41db81948d7b4ad1db18688c4f92aaed84
1 file changed +3 -3
src/acme.ts
+3 -3
@@ -62,7 +62,7 @@ async function generateSSLCert(domain: string, email?: string, altNames?: string
62 resolve() // go on anyway
63 }) )
64 acmeMiddlewareEnabled = true
65 - console.debug('acme challenge server ready')
65 + console.debug("acme challenge server ready")
66 let tempMap: any
67 try {
68 const checkUrl = `http://${domain.split(',')[0]}`
@@ -125,7 +125,7 @@ events.once('https ready', () => repeat(HOUR, renewCert))
125
126 // checks if the cert is near expiration date, and if so renews it
127 const renewCert = debounceAsync(async () => {
128 - const domain = acmeDomain.get()
128 + const [domain, ...altNames] = acmeDomain.get().split(',')
129 if (!acmeRenew.get() || !domain) return
130 const cert = getCertObject()
131 if (!cert) return
@@ -134,7 +134,7 @@ const renewCert = debounceAsync(async () => {
134 // not expiring in a month
135 if (now > new Date(cert.validFrom) && now < validTo && validTo.getTime() - now.getTime() >= 30 * DAY)
136 return console.log("certificate still good")
137 - await makeCert(domain, acmeEmail.get())
137 + await makeCert(domain, acmeEmail.get(), altNames)
138 .catch(e => console.log("error renewing certificate: ", String(e.message || e)))
139 }, 0, { retain: DAY, retainFailure: HOUR })
140