TLS/SSL — encrypted communication.
1const https = require("https");2const fs = require("fs");34const options = {5 key: fs.readFileSync("server.key"),6 cert: fs.readFileSync("server.cert"),7 // Mutual TLS (mTLS)8 requestCert: true,9 rejectUnauthorized: true,10 ca: [fs.readFileSync("ca.cert")],11};1213const server = https.createServer(options, (req, res) => {14 // Verify client certificate15 const cert = req.socket.getPeerCertificate();16 if (!cert.subject) {17 return res.status(401).json({ error: "No certificate" });18 }1920 res.json({ cn: cert.subject.CN });21});2223server.listen(443);
Generate certificates:
1# Generate CA2openssl genrsa -out ca.key 20483openssl req -new -x509 -days 365 -key ca.key -out ca.cert45# Generate server cert6openssl genrsa -out server.key 20487openssl req -new -key server.key -out server.csr8openssl x509 -req -days 365 -in server.csr -CA ca.cert -CAkey ca.key -out server.cert