← back to Dw Domain Fleet

scripts/tk11470-sort-proof/tlsfront.cjs

9 lines

const https=require('https'), http=require('http'), fs=require('fs');
const UP=process.env.UP||'127.0.0.1:18471', PORT=+(process.env.TLS_PORT||18472);
https.createServer({key:fs.readFileSync('/tmp/tk11470-proof/key.pem'),cert:fs.readFileSync('/tmp/tk11470-proof/cert.pem')},(req,res)=>{
  const [h,p]=UP.split(':');
  const r=http.request({host:h,port:+p,path:req.url,method:req.method,headers:{...req.headers,host:`127.0.0.1:${PORT}`}},u=>{res.writeHead(u.statusCode,u.headers);u.pipe(res);});
  r.on('error',e=>{res.writeHead(502);res.end('proxy '+e.message);});
  req.pipe(r);
}).listen(PORT,()=>console.log('TLS front on https://127.0.0.1:'+PORT+' -> '+UP));