X

Cómo instalar un Certificado SSL en Node.js

Desde hace un par de años los certificados SSL han comenzado a ganar mucha importancia. Tradicionalmente, los SSL eran utilizados solamente por sitios web que manejaran datos críticos de los usuarios, como por ejemplo números de tarjetas de crédito, cuentas bancarias y similares, es decir que su uso estaba más extendido entre tiendas online, páginas de bancos, etc.

Hace ya un tiempo que esto cambió, y hoy en día Google posiciona mejor en sus resultados de búsqueda a los sitios que utilizan SSL, independientemente de su rubro por supuesto. También actualmente existe una cierta tecnología de desarrollo web cuyo uso ha crecido mucho en los últimos años, se trata de Node.js.

Al igual que anteriormente te comentamos cómo instalar un SSL en cPanel, y también escribimos un tutorial completo sobre cómo migrar WordPress de HTTP a HTTPS, hoy vamos a ver cómo se instalar un SSL en NodeJS, pero primero repasaremos unos conceptos básicos.

¿Qué es Node.js?

Quienes no lo conozcan probablemente sean ajenos al mundo de la programación y/o del hosting, ya que de lo contrario es muy probable que hayas escuchado hablar de él alguna vez. Node.js es, básicamente, un entorno de ejecución orientado para JavaScript, y además es de código abierto y está disponible en múltiples plataformas.

Explicado de forma sencilla, la tarea de Node.js es la de crear un servidor web y diversas herramienta de red utilizando JavaScript, así como también diversos módulos que brindarán funciones adicionales. Es tan bueno que incluso es utilizado por grandes compañías como Microsoft, IBM, PayPal, Yahoo!, Likedin, Netflix, entre otras.

¿Para qué sirve un SSL?

Los certificados SSL tienen una función muy básica pero sumamente importante para la seguridad de los datos de una web: brindan una encriptación en las comunicaciones entre el servidor y el navegador del usuario. ¿Qué quiere decir? Que cualquier dato que el usuario envíe al sitio web, o que el sitio envíe al navegador del usuario, viajara encriptado, de forma tal que si es interceptado por un tercero los datos estarán cifrados.

Los certificados SSL modernos utilizan un poderoso protocolo de encriptación llamado TLS 1.3, que por cierto ha recibido luz verde hace solo algunos meses y de a poco se está estandarizando.

Los SSL son una medida de seguridad imprescindible para sitios que manejen datos muy importantes, que como ya hemos dicho pueden ser por ejemplo números de tarjeta de crédito y similares, aunque por supuesto puede haber otro tipo de datos que también deseemos que estén protegidos en su tránsito desde el server al usuario o viceversa.

Cómo instalar un certificado SSL en Node.js

Si tenemos un entorno en Node.js y queremos que nuestro sitio disponga de la mejor seguridad, uno de los elementos que no pueden faltar será un certificado SSL.

El primer paso es: comprar un certificado SSL.

Luego de eso, te sugerimos seguir este tutorial para generar los archivos CSR, KEY y obtener el código CRT, esto aplica tanto para servidores de Cloud Hosting, como para Servidores Dedicados.

Finalmente, una vez tengamos el CRT, el CA root y el CA-bundle de nuestro SSL, es hora de ponernos manos a la obra con Node.js.

La instalación del SSL en NodeJS consiste en tres pasos:

  1. Subir los archivos del certificado al servidor.
  2. Configurar los archivos del SSL  en tu servidor NodeJS.
  3. Lanzar la aplicación.

Una vez hayamos subido los archivos del SSL al server, vamos a crear el JS para el HTTPS.

nano https_server.js

Y agregaremos este código al archivo:

var https = require('https');

var fs = require('fs');

var https_options = {

key: fs.readFileSync("/ruta/de/llaveprivada.key"),

cert: fs.readFileSync("/ruta/de/tudominio.crt"),

ca: [

fs.readFileSync('/ruta/de/CA_root.crt'),

fs.readFileSync('/ruta/de/CA-bundle.crt')

]
};

https.createServer(https_options, function (req, res) {

res.writeHead(200);

res.end("Bienvenido al servidor HTTPS de Node.js");

}).listen(8443)

Por supuesto en esto código tendremos que reemplazar las rutas, ya que las que hemos colocado son solo a modo de ejemplo:

/ruta/de/llaveprivada.key: debes colocar la ruta exacta donde está guardada la llave privada (key) del SSL.
/ruta/de/tudominio.crt: esta ruta la reemplazaremos por la del archivo CRT.
/ruta/de/CA_root.crt: esta es la ruta correspondiente al archivo CA root.
/ruta/de/CA-bundle.crt: y finalmente debes hacer lo mismo con la ruta del CA-bundle.

Una vez todo eso esté listo, bastará con lanzar la aplicación que acabamos de crear:

node https_server.js

¡Y eso ha sido todo! Ahora tu nuevo certificado SSL quedó activo en Node.js.

Conclusión

Hemos realiza exitosamente la instalación de nuestro certificado SSL en un entorno de Node.js. Como decíamos, es imprescindible contar con los archivos del certificado para poder realizar la instalación, así que el primer paso una vez los tengas es subirlos al server.

Posteriormente debes crear el JS desde el cual vamos a lanzar la app y por último simplemente debemos ejecutarla. Con estos sencillos pasos nuestro servidor HTTPS en Node.js ha entrado en producción.

Artículos relacionados