Usando HTTPS localmente con Node.js

in Discovery-it3 years ago

nodejs.png

Hoy en día es necesario utilizar HTTPS para garantizar una conexión segura entre el cliente y el servidor para las aplicaciones web. Pero, la mayoría de las veces, apenas usamos HTTPS en servidores de desarrollo local. A veces, puede provocar problemas inesperados en su aplicación.

Por qué debería usar HTTPS localmente

Antes de pasar a las implementaciones, veamos por qué debería optar por HTTPS en los servidores de desarrollo locales.
A continuación, se muestran algunas situaciones comunes en las que favorece el uso de HTTPS en su entorno de desarrollo local:

*** Lo más importante es que podemos convertir el entorno de desarrollo en el producción.

Como ahora conoces las situaciones en las que se necesita HTTPS, veamos cómo integrarlo en su servidor de desarrollo local con Node.

Generando un certificado SSL

Como primer paso, debes generar una Autoridad de certificación local y un certificado SSL para Desarrollo local.

mkcert es una herramienta para generar certificados SSL de confianza local para el desarrollo. Crea una autoridad de certificación confiable en la raíz de su sistema y firma certificados usándola para generar certificados SSL confiables localmente.

Lo mejor de mkcert es que no requiere configuración y es mucho más fácil de configurar que otras herramientas. Además, mkcert es compatible con varias plataformas.

Instalando mkcert

mkcert es compatible con Windows, Linux y macOS, y en mi caso, instalaré mkcert en Windows.

Antes de eso, debes instalar Chocolatey. No te mostraré cómo instalar Chocolatey, ya que puedes encontrar la guía de instalación completa de Chocolatey aquí.

Una vez instalado Chocolatey puedes instalar mkcert usando:

choco install mkcert

Creación de una CA de confianza local

Ahora deberíamos crear una autoridad de certificación confiable en la raíz de nuestro sistema usando el siguiente comando.

mkcert -install

Esto creará una autoridad de certificación (CA) local en la que solo su dispositivo confíe. Ejecutar el comando mkcert -CAROOT le dará la ruta al certificado de CA local.

Generar el Certificado SSL

Ahora podemos generar un certificado SSL. Para eso, navegue hasta la ubicación donde necesita generar el certificado SSL y ejecute el siguiente comando.

mkcert localhost

El comando anterior generará un certificado y una clave privada para su dominio. Puede reemplazar localhost con un nombre de dominio de su preferencia.

¡Genial! Hemos completado la configuración de mkcert. Bastante simple, ¿verdad? Ahora veamos cómo podemos integrar estos certificados en la interfaz de nuestra aplicación.

NODE.js


El siguiente codigo muestra cómo configurar con Express.js para usar SSL en un entorno Node.js.

const https = require('https');
const fs = require('fs');
const express = require('express');
const app = express();
const options = {
    key: fs.readFileSync('./localhost-key.pem'), // Reemplaza con la ruta de tu llave generada
    cert: fs.readFileSync('./localhost.pem') // Reemplaza con la ruta de tu certificado generado
}
app.use((req, res, next) => {
    res.send('<h1>HTTPS Works!</h1>');
});
const port = 3000;
https.createServer(options, app).listen(port,() => {
    console.log('Server listening on port ' + port);
});

Ahora en el navegador visita https://localhost:3000 y verifica si todo está funcionando bien. ¡Si todo esta Ok, el Candado aparecerá!



1.png

¡Si te gusto el post o tienes alguna duda escribe en los comentarios!

Gracias y Felicidad~

Ah! no olvides visitar mi página web https://tupaginaonline.net