¿Puedo crear un servidor Express que escuche tanto HTTP como HTTPS, con las mismas rutas y los mismos middlewares?Escuchar HTTP y HTTPS para una sola aplicación express
Actualmente hago esto con Express on HTTP, con stunnel tunelizando HTTPS a Express, pero prefiero una solución de Nodo puro.
lo puedo hacer con este código, pero utilizando el método handle
que está marcado como privado:
var express = require('express')
, https = require("https")
, fs = require('fs');
var app = express.createServer();
// init routes and middlewares
app.listen(80);
var privateKey = fs.readFileSync('privatekey.pem').toString();
var certificate = fs.readFileSync('certificate.pem').toString();
var options = {key: privateKey, cert: certificate};
https.createServer(options, function(req,res)
{
app.handle(req, res);
}).listen(443);
Respondido sucintamente aquí: http://stackoverflow.com/a/23894573/1882064 – arcseldon