9router/src/mitm/cert/generate.js

33 lines
839 B
JavaScript
Raw Normal View History

const path = require("path");
const fs = require("fs");
2026-02-27 22:04:57 -05:00
const { MITM_DIR } = require("../paths");
2026-03-05 09:13:09 -05:00
const { generateRootCA, loadRootCA, generateLeafCert } = require("./rootCA");
/**
2026-03-05 09:13:09 -05:00
* Generate Root CA certificate (one-time setup)
* This replaces the old static wildcard cert approach
*/
async function generateCert() {
2026-03-05 09:13:09 -05:00
return await generateRootCA();
}
2026-03-05 09:13:09 -05:00
/**
* 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;
}
}
2026-03-05 09:13:09 -05:00
module.exports = { generateCert, getCertForDomain };