Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

157
Vistas
Express vhosts + https

¿Hay alguna forma de ejecutar vhosts en Express con https? Mi código actual (no SSL) se ve así:

 var express = require('express'); var vhost = require('vhost'); var path = require('path'); var appOne = express(); var appTwo = express(); var appVhosts = module.exports = express(); appOne.use(express.static(path.join(__dirname, 'pages'))); appTwo.get('/', function(req, res){ res.send('That service isn\'t up right now!') }); app.use(vhost('siteone.com', appOne)); app.use(vhost('sitetwo.com', appTwo)); appVhosts.listen(80);

Sin embargo, que yo sepa, el módulo https solo acepta un certificado SSL.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Aparentemente, https.Server hereda de tls.Server , que ofrece un método llamado addContext() . Puede configurar varios certificados allí. También escribí un paquete muy pequeño que usa este método para lograr el resultado, https://www.npmjs.com/package/vhttps . Puedes consultar mi implementación allí.

over 4 years ago · Santiago Trujillo Denunciar

0

Debe definir las opciones de SSL para cada aplicación y asignarlas a cada aplicación de la siguiente manera:

 // (A) read SSL files var fs = require('fs'); var appOneSSLOps = { key: fs.readFileSync('./path_to_file/private.key'), cert: fs.readFileSync('./path_to_file/certificate.crt') } var appTwoSSLOps = { key: fs.readFileSync('./path_to_file/private2.key'), cert: fs.readFileSync('./path_to_file/certificate2.crt') } // (B) assign SSL files to app var https = require('https'); var appOneServer = https.createServer(appOneSSLOps , appOne).listen(443); var appTwoServer = https.createServer(appTwoSSLOps , appTwo).listen(80); // (C) route 80 to 443 - > on your machine route port 80 to 443 either manually or by child_process: I assume you are using linux Ubuntu System childProcess = require('child_process'); var optionExec = {timeout: 3000}; //option(s) for childProcess.exec childProcess.exec( 'sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 443', optionExec, function(err, stdout, stderr) { } ); // (D) then enforce SSL - I assume appOne is the main app. appOne.use(function(request, response, next) { if(!request.secure) { response.redirect('https://' + request.headers.host + request.url); } next(); });

Nota: supongo que appOne es la aplicación principal.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda