Skip to content

Commit 73dc5be

Browse files
committed
write certificate material to one JSON file and also read from that
1 parent 542cdaf commit 73dc5be

File tree

1 file changed

+25
-14
lines changed

1 file changed

+25
-14
lines changed

src/_cert.ts

+25-14
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,17 @@ export async function resolveCertificate(
5959

6060
if (typeof options === "object" && options.reuse) {
6161
// Reuse previously autogenerated certificates if exists
62-
const certExists = await pathExists(certificateDirectory + "cert.pem");
63-
const keyExists = await pathExists(certificateDirectory + "cert-key.pem");
62+
const certsExists = await pathExists(certificateDirectory + "certs.json");
6463

65-
if (certExists && keyExists) {
66-
const cert = await fs.readFile(certificateDirectory + "cert.pem");
67-
const key = await fs.readFile(certificateDirectory + "cert-key.pem");
64+
if (certsExists) {
65+
const certs = JSON.parse(
66+
(await fs.readFile(certificateDirectory + "certs.json")).toString(
67+
"utf8",
68+
),
69+
);
6870
return {
69-
cert: cert.toString("utf8"),
70-
key: key.toString("utf8"),
71+
cert: certs.cert + certs.caCert,
72+
key: certs.key,
7173
};
7274
}
7375
}
@@ -98,7 +100,8 @@ export async function resolveCertificate(
98100
cert: forge.pki.certificateToPem(_cert!),
99101
};
100102
} else {
101-
const { cert } = await generateCertificates(options);
103+
const { cert, ca } = await generateCertificates(options);
104+
cert.cert += ca.cert;
102105
https = cert;
103106
}
104107

@@ -124,8 +127,6 @@ async function generateCertificates(
124127
const ca = await generateCACert(caOptions);
125128

126129
await mkdir(resolve(certificateDirectory), { recursive: true });
127-
await writeFile(resolve(certificateDirectory + "ca.pem"), ca.cert);
128-
await writeFile(resolve(certificateDirectory + "ca-key.pem"), ca.key);
129130

130131
const domains = Array.isArray(options.domains)
131132
? options.domains
@@ -140,12 +141,22 @@ async function generateCertificates(
140141
});
141142

142143
await writeFile(
143-
resolve(certificateDirectory + "cert.pem"),
144-
cert.cert + ca.cert,
144+
resolve(certificateDirectory + "certs.json"),
145+
JSON.stringify({
146+
cert: cert.cert,
147+
key: cert.key,
148+
caCert: ca.cert,
149+
caKey: ca.key,
150+
}),
145151
);
146-
await writeFile(resolve(certificateDirectory + "cert-key.pem"), cert.key);
147152

148-
return { ca, cert };
153+
return {
154+
ca,
155+
cert: {
156+
cert: cert.cert,
157+
key: cert.key,
158+
},
159+
};
149160
}
150161

151162
async function resolveCert(options: HTTPSOptions): Promise<Certificate> {

0 commit comments

Comments
 (0)