32 lines
839 B
JavaScript
32 lines
839 B
JavaScript
const path = require("path");
|
|
const fs = require("fs");
|
|
const { MITM_DIR } = require("../paths");
|
|
const { generateRootCA, loadRootCA, generateLeafCert } = require("./rootCA");
|
|
|
|
/**
|
|
* Generate Root CA certificate (one-time setup)
|
|
* This replaces the old static wildcard cert approach
|
|
*/
|
|
async function generateCert() {
|
|
return await generateRootCA();
|
|
}
|
|
|
|
/**
|
|
* Get certificate for a specific domain (dynamic generation)
|
|
* Used by SNICallback in server.js
|
|
*/
|
|
function getCertForDomain(domain) {
|
|
try {
|
|
const rootCA = loadRootCA();
|
|
const leafCert = generateLeafCert(domain, rootCA);
|
|
return {
|
|
key: leafCert.key,
|
|
cert: leafCert.cert
|
|
};
|
|
} catch (error) {
|
|
console.error(`Failed to generate cert for ${domain}:`, error.message);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
module.exports = { generateCert, getCertForDomain };
|