Saltar al contenido

¿Cómo configuro un certificado SSL para un servidor express.js?

Solución:

Consulte los documentos de Express, así como los documentos de Node para https.createServer (que es lo que Express recomienda usar):

var privateKey = fs.readFileSync( 'privatekey.pem' );
var certificate = fs.readFileSync( 'certificate.pem' );

https.createServer({
    key: privateKey,
    cert: certificate
}, app).listen(port);

Otras opciones para createServer están en: http://nodejs.org/api/tls.html#tls_tls_createserver_options_secureconnectionlistener

Pude hacer que SSL funcionara con el siguiente código repetitivo:

var fs = require('fs'),
    http = require('http'),
    https = require('https'),
    express = require('express');

var port = 8000;

var options = {
    key: fs.readFileSync('./ssl/privatekey.pem'),
    cert: fs.readFileSync('./ssl/certificate.pem'),
};

var app = express();

var server = https.createServer(options, app).listen(port, function(){
  console.log("Express server listening on port " + port);
});

app.get("https://foroayuda.es/", function (req, res) {
    res.writeHead(200);
    res.end("hello worldn");
});

Este es mi código de trabajo por express 4.0.

express 4.0 es muy diferente de 3.0 y otros.

4.0 tiene el archivo / bin / www, que va a agregar https aquí.

“npm start” es la forma estándar de iniciar el servidor Express 4.0.

La función readFileSync () debería usar __dirname obtener directorio actual

mientras requiere () usar ./ consulte el directorio actual.

Primero coloque el archivo private.key y public.cert en la carpeta / bin, es la misma carpeta que el archivo WWW.

no se encontró ese directorio error:

  key: fs.readFileSync('../private.key'),

  cert: fs.readFileSync('../public.cert')

error, no se encontró ese directorio

  key: fs.readFileSync('./private.key'),

  cert: fs.readFileSync('./public.cert')

El código de trabajo debe ser

key: fs.readFileSync(__dirname + '/private.key', 'utf8'),

cert: fs.readFileSync(__dirname + '/public.cert', 'utf8')

El código https completo es:

const https = require('https');
const fs = require('fs');

// readFileSync function must use __dirname get current directory
// require use ./ refer to current directory.

const options = {
   key: fs.readFileSync(__dirname + '/private.key', 'utf8'),
  cert: fs.readFileSync(__dirname + '/public.cert', 'utf8')
};


 // Create HTTPs server.

 var server = https.createServer(options, app);
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *