Así que tengo un servidor NodeJS básico que estoy tratando de convertir de HTTP a HTTPS.
Aquí está el código antiguo (HTTP) que funciona:
const express = require('express'); const port = 80; const app = express(); app.listen(port, () => console.log('listening on ' + port)); app.use(express.static('public')); app.use(express.json({'limit':'2mb'}));He estado buscando cómo convertir esto a HTTPS. He intentado muchos intentos, pero parece que no puedo hacer que esto funcione. A continuación se muestra mi estado actual de código.
El nuevo código (HTTPS) no funciona:
const express = require('express'); const https = require('https'); const fs = require('fs'); const port = 443; var key = fs.readFileSync('./private/privkey.pem'); var cert = fs.readFileSync('./private/fullchain.pem'); var options = { key: key, cert: cert }; var app = express(); https.createServer(options, app).listen(port, () => console.log('listening on ' + port)); app.use(express.static('public')); app.use(express.json({'limit' : '2mb'}));El puerto parece abrirse y escuchar, pero cada vez que intento conectarme a través del navegador, aparece el error:
"<ip> didn't send any data." ERR_EMPTY_RESPONSE
He intentado omitir la aplicación express del servidor https y reemplazarla con
function (req, res) { res.send('hello!') }Pero esto no hizo ninguna diferencia en el error.
Estoy realmente atascado ahora que he revisado tantos foros y no sé qué estoy haciendo mal.
EDITAR:
No recibo ningún error de sintaxis al ejecutar index.js