Hello, can someone please verify if I am doing something wrong.
I would like to append root CA and intermediate cert from Let's Encrypt that certificate would like this - see the screen.
This is the code:
const path = require('path');
const privateKeyFilePath = path.join(__dirname, 'private.key');
const certFilePath = path.join(__dirname, 'serverCert.pem');
const cert = fs.readFileSync(certFilePath, 'utf8');
const key = fs.readFileSync(privateKeyFilePath, 'utf8');
// Load your server certificate
const privateKey = forge.pki.privateKeyFromPem(key.toString());
const serverCertificate = forge.pki.certificateFromPem(cert.toString());
const intermediateCertUrl = 'https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem';
const rootCertUrl = 'https://letsencrypt.org/certs/isrgrootx1.pem';
const intermediateCertResponse = await fetch(intermediateCertUrl);
const rootCertResponse = await fetch(rootCertUrl);
const intermediateCertPem = await intermediateCertResponse.text();
const rootCertPem = await rootCertResponse.text();
const intermediateCert = forge.pki.certificateFromPem(intermediateCertPem);
const rootCert = forge.pki.certificateFromPem(rootCertPem);
// Create the certificate chain
serverCertificate.setIssuer(intermediateCert.subject.attributes);
intermediateCert.setIssuer(rootCert.subject.attributes);
// Generate the PKCS#12 certificate
const pkcs12 = forge.pkcs12.toPkcs12Asn1(privateKey, [serverCertificate, intermediateCert, rootCert], '');
// Define the file path where you want to save the PKCS#12 certificate (PFX format)
const pfxFilePath = path.join(__dirname, 'output.pfx');
// Convert the PKCS#12 certificate to binary format
const pfxDer = forge.asn1.toDer(pkcs12).getBytes();
// Write the PKCS#12 certificate to a file (PFX format)
fs.writeFileSync(pfxFilePath, pfxDer, { encoding: 'binary' });
console.log(`PKCS#12 certificate saved to ${pfxFilePath}`);
output.pfx looks like this only server certificate is present:
Hello, can someone please verify if I am doing something wrong. I would like to append root CA and intermediate cert from Let's Encrypt that certificate would like this - see the screen.
This is the code:
output.pfx looks like this only server certificate is present:
using latest node-forge 1.3.1