Por Timilehin Omolana

Ejecutar HTTPS localmente es imprescindible para ciertos tipos de desarrollo.

Lectores como tú ayudan a apoyar a MUO. Cuando realiza una compra utilizando enlaces en nuestro sitio, podemos ganar una comisión de afiliado. Leer más.

Durante el desarrollo, es posible que desee configurar su servidor web para establecer conexiones seguras con los navegadores. Node.js hace que este sea un proceso sencillo, incluso en un entorno que no sea de producción, con su función integrada https módulo.

En producción, puede configurar su aplicación detrás de un proxy inverso como NGINX, que generalmente entrega certificados por usted. Pero es posible que aún necesite probar su aplicación usando https en desarrollo.

¿Cómo puede usar un certificado SSL en una aplicación Node.js?

Cómo utilizar un certificado SSL para desarrollar un servidor Node.js seguro

Tu puedes fácilmente crear un certificado SSL autofirmado en Linuxy siga los pasos a continuación para configurar su aplicación Node para usar https.

instagram viewer
  1. Cree un archivo de punto de entrada del servidor, por ejemplo, index.js.
  2. Importar el https y fs módulos en el archivo como este: constante https = requerir('https');
    constante f = requerir('fs')
  3. Defina el objeto de opciones para el https servidor que está a punto de crear. Recuerda reemplazar mi-clave-de-servidor.pem y mi-servidor-cert.pem con las rutas correctas de su clave privada y archivos de certificado. constante opciones = {
    clave: fs.readFileSync("mi-clave-de-servidor.pem"),
    certificado: fs.readFileSync("mi-servidor-cert.pem")
    }
    Para utilizar un certificado SSL real, que puede obtener de forma gratuita en letencrypt.org, utilice las siguientes opciones: constante opciones = {
    clave: fs.readFileSync("/path/a/clave.privada"),
    certificado: fs.readFileSync("/path/a/ssl_certificate.crt"),
    ca: [
    fs.readFileSync("/path/a/ca_root_file.crt"),
    fs.readFileSync("/path/a/ca_bundle_certificate.crt")
    ]
    }
  4. Ahora inicialice su servidor usando las opciones y configúrelo para escuchar en el puerto 443. https.createServer (opciones, (requerido, res) => {
    res.writeHead(200);
    res.end("hola mundo");
    })
    .escuchar(443);

Ahora puede iniciar su servidor en la terminal usando nodo index.js. Cuando prueba la conexión abriendo https://localhost o https://localhost: 443/ en su navegador, debería ver 'Hola Mundo' desplegado.

Su navegador también puede advertirle sobre una conexión insegura cuando utiliza el certificado autofirmado. Esto es normal ya que los navegadores web generalmente consideran que los certificados autofirmados no son seguros.

Puede obtener el error “Error: escuchar EACCES: permiso denegado 0.0.0.0:443” cuando intenta iniciar su servidor, esto se debe a que su máquina niega el acceso de la aplicación al puerto 443, que es el comportamiento predeterminado en la mayoría de los dispositivos. Para solucionar esto, ejecute el nodo index.js comando como usuario root en Linux (sudo nodo index.js), o abra su terminal como administrador en Windows.

Uso de certificados SSL en aplicaciones Node.js

La mayoría de las veces, solo querrá agregar certificados SSL durante la fase de desarrollo. Los requisitos de producción generalmente requieren la instalación de herramientas de seguridad como firewalls y proxies inversos de todos modos.

De esta manera, ya no es necesario utilizar un certificado SSL para su aplicación. Es posible que solo desee agregar un certificado SSL en producción si su aplicación se comunica con servicios externos.

Suscríbete a nuestro boletín

Comentarios

CompartirPíoCompartirCompartirCompartir
Derechos de autor
Correo electrónico
Compartir
CompartirPíoCompartirCompartirCompartir
Derechos de autor
Correo electrónico

Enlace copiado al portapapeles

Temas relacionados

  • Programación
  • Desarrollo web
  • SSL
  • JavaScript

Sobre el Autor

Timilehin Omolana(12 artículos publicados)

Timilehin es un ingeniero de software y escritor técnico al que le encanta explorar el mundo de las tecnologías del lado del servidor y los sistemas distribuidos.