Tutoriales

Cómo crear un servidor HTTPS en Node Js

¿Cómo crear un servidor HTTPS para Node Js? Esta es la pregunta más frecuente de los desarrolladores de node js. Por varias razones de seguridad, muchos módulos populares requieren que se habilite el protocolo HTTPS.

Qué es Protocolo HTTPS? Si borras segundo desde HTTPS,tenemos HTTP,Esto es un Acuerdo estándar Se utiliza para acceder a aplicaciones web. No es seguro; cualquiera puede interceptar los paquetes de datos que se conecten a la misma red.

a pesar de que HTTPS es un protocolo seguro Para las aplicaciones web, aquí, toda la comunicación entre su navegador y el servidor es Cifrado y descifrado Solo usa uno privado llaveEsto hace que la comunicación sea más segura y privada.

Cómo instalar y ejecutar Node Js en Linux

Hoy, aprenderá a crear un certificado SSL para iniciar un servidor HTTPS para Express en Node Js.

Paso 1: plantilla estándar de Node Js

Echemos un vistazo a la plantilla estándar de Node Js.A continuación se muestra el código que escribimos principalmente para crear un servidor normal que se ejecuta en un servidor normal. HTTP.

const express = require("express"),
      app = express()

app.get("/", (req, res) => {
    res.send("Hello, TREND OCEANS!")
})

app.listen(3000, console.log(`Server started on port 3000`))

Ejecutar el script anterior usando el nodo js iniciará el servidor web usando el estándar Protocolo HTTP Y muestra un «¡Hola, Trending Ocean!» información.

Servidor HTTP estándar

Por ejemplo, puede tomar el código anterior como ejemplo Crea un nuevo archivo en un Nuevo catalogo y ahorrar Tener un nombre Application.js Además, no olvides correr npm init Pedido Inicie el módulo de nodo En el directorio actual.

Paso 2: crea un certificado SSL

Para usar HTTPS, primero debemos Crear certificado SSLEl certificado SSL se puede utilizar en Windows, Linux y macOS. SSL abierto.

De forma predeterminada, todos los sistemas Linux pueden utilizar OpenSSL sin instalar ningún otro paquete de software.Ejecute el siguiente comando para crear Archivo de certificado y Archivo de clave En su sistema Linux.

$ openssl req -x509 --newkey rsa:4096 --out cert.pem --keyout key.pem --days 365

Para los usuarios de Windows, puede instalar git bashOpenSSL está disponible en la consola de Git Bash.

Cuando ejecute el comando anterior, le preguntará algunas cosas. Primeramente, contraseña Utilice su archivo pem clave para hacerlo más seguro.Recomiendo configurar uno Código de seguridad.

Generar certificado SSL
Generar certificado SSL

A continuación, hará preguntas generales como nombres de países / regiones, correos electrónicos, nombres de organizaciones, etc. en un código de 2 letras. La información que desea proporcionar no es necesaria, depende de usted.

Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:

Cuando haya terminado, verá Dos archivos El nombre creado en el directorio actual cert.pem y key.pem.

Certificado SSL
Certificado SSL

Ahora tenemos que poner estos archivos en Nuevo catalogo. Si está utilizando una plantilla estándar de paso 1. Luego crea una nueva carpeta nombrada en el proyecto actual Certificado Y coloque los dos archivos allí para que esté más organizado.

Mover el certificado en el directorio cert
Mover el certificado en el directorio cert

Paso 3: modificar la aplicación del nodo

Ahora tenemos que hacer algunos cambios en él. Application.js desde paso 1Los siguientes son algunos de los cambios que hicimos.Puede encontrar la diferencia revisando paso 1 Conozca nuestros cambios.

const express = require("express"),
      app = express(),
      fs = require("fs"),
      path = require("path"),
      https = require("https")


certfile = fs.readFileSync(path.join(__dirname, "cert", "cert.pem"))
keyfile = fs.readFileSync(path.join(__dirname, "cert", "key.pem"))

const secureserver = https.createServer({ cert: certfile, key: keyfile, passphrase: "trendoceans" }, app)

app.get("/", (req, res) => {
    res.send("Hello, TREND OCEANS!")
})

secureserver.listen(3000, console.log(`Server started on port 3000`))

Hablemos de los cambios que hicimos paso 1.

Primero, hemos incluido más módulos en el proyecto actual, como fs, camino, y HTTPS.

FS: Incluimos esta biblioteca para leer el contenido del certificado.

Sendero: Nos ayuda a ubicar el certificado en nuestro proyecto. [Which we moved in cert directory]

HTTPS: Este es el módulo principal que nos permite crear un servidor HTTPS utilizando el certificado generado. Paso 2.

A continuación, creamos algunas variables para especificar la ubicación del certificado y usar FS y Sendero Módulo.

certfile = fs.readFileSync(path.join(__dirname, "cert", "cert.pem"))
keyfile = fs.readFileSync(path.join(__dirname, "cert", "key.pem"))

Ahora usamos las variables anteriores para leer el certificado SSL para crear un Servidor HTTPS usar Módulo HTTPS. No olvides reemplazar contraseña. En mi caso, es Océano de corriente de marea Reemplácelo con el que especificó cuando generó el certificado SSL.

const secureserver = https.createServer({ cert: certfile, key: keyfile, passphrase: "trendoceans" }, app)

Finalmente, no olvides reemplazar la última variable solicitud llegar Servidor de seguridad Inicie el oyente con el protocolo HTTPS.

secureserver.listen(3000, console.log(`Server started on port 3000`))

Una vez que haya realizado los cambios necesarios.A continuación, guarde el archivo y abra un símbolo del sistema o terminal en el directorio del proyecto para Inicie el servidor express Utilice el siguiente comando.

$ node app.js

Ahora abra su navegador y visite https: // localhost: 3000, Y se mostrará un mensaje de advertencia por primera vez La conexión no es privada. Conseguimos esto porque usamos Certificado SSL autofirmadoY nuestro navegador no sabe autoridad.

Evite los mensajes de advertencia
Evite los mensajes de advertencia

Ahora, haga clic en Progreso entonces Continuar a localhost (inseguro) Visite su sitio web.

Servidor Secure Node Js
Servidor Secure Node Js

Tada, ha creado con éxito un servidor HTTPS para express en el nodo js.

Pensamientos finales

Entendí desde el principio que esto podría parecer un poco complicado. Sin embargo, si encuentra alguna dificultad o no puede crear un servidor seguro. Cuentanos en la sección de comentarios.

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba