Cómo Ejecutar Localhost con HTTPS y mkcert
Cómo Ejecutar Localhost con HTTPS

Cómo Ejecutar Localhost con HTTPS

SSL (Secure Socket Layer) cifra las transacciones de datos entre un navegador y un servidor, lo que mejora la seguridad de tu sitio web. Si bien usar HTTP para localhost suele ser suficiente para el desarrollo, a veces necesitas probarlo en HTTPS. Por ejemplo, es posible que debas probar un service worker, establecer cookies seguras que necesitan que el sitio se cargue a través de HTTPS o probar una API de terceros que generalmente requiere HTTPS, como una API de tipo de autenticación o pago.

Probar tu sitio con SSL durante el desarrollo garantiza que todos los elementos, incluidas las URL y los recursos como CSS y JavaScript, funcionen correctamente con HTTPS. Esto ayuda a reflejar el entorno de producción con mayor precisión, lo que ayuda a que las transiciones sean más fluidas al momento de la publicación.

En este artículo, te guiaremos a través del proceso de habilitar HTTPS en tu localhost, lo que garantiza que estés preparado para cualquier necesidad de prueba segura.

¿Listo para empezar? ¡Vamos!

Empezando con mkcert

mkcert simplifica el proceso de instalación de certificados SSL para localhost. A diferencia de los métodos tradicionales que a menudo son complejos, mkcert ofrece un enfoque sencillo. Configura un certificado de desarrollo confiable localmente al instalar y confiar automáticamente en una Autoridad de certificación (CA) local en tu sistema. Esta herramienta es compatible con macOS, Linux y Windows, y cubre una amplia gama de entornos de desarrollo.

Si estás en macOS o Linux, primero deberás instalar Homebrew. Los usuarios de Windows deben instalar Chocolatey. Con estas herramientas en su lugar, puedes instalar fácilmente mkcert ejecutando los siguientes comandos:

// Para macOS o Linux
brew install mkcert && brew install nss 
# "nss" es necesario para la compatibilidad con Firefox
Instalación de mkcert
Instalación de mkcert
// Para Windows
choco install mkcert

Instalación de Certificados SSL

Comienza ejecutando el siguiente comando para crear una Autoridad de certificación/Certificate Authority (CA) que firmará tus certificados:

mkcert -install
Instalación de Certificate Authority con mkcert
Instalación de Certificate Authority con mkcert

Es importante mantener seguro el archivo rootCA-key.pem y nunca compartirlo. Si se ve comprometido, un atacante podría potencialmente interceptar tus conexiones seguras a cualquier sitio. ¡Maneja este archivo con precaución!

Después de la creación de la CA, genera un certificado para el nombre de host localhost usando este comando:

mkcert localhost
Comando mkcert localhost
Comando mkcert localhost

Esta herramienta también es lo suficientemente versátil como para producir certificados para otros nombres de host o incluso direcciones IP locales, como 127.0.0.1.

Por ejemplo:

mkcert esgeeks.local www.esgeeks.local 127.0.0.1

Ejecutando un Servidor HTTP

Con tus certificados SSL listos, ahora puedes iniciar tu servidor local usando HTTPS. Para aquellos que utilizan Node.js, el paquete http-server ofrece un método sencillo para iniciar un servidor. Debes especificar las rutas a tus archivos de certificado y clave.

Por ejemplo, así es como se ejecuta un servidor localhost en el puerto 8080:

http-server -S -C localhost.pem -K localhost-key.pem -p 8080
Iniciar localhost https con http-server
Iniciar localhost https con http-server

Una vez que se esté ejecutando, se puede acceder a tu localhost a través de HTTPS en https://localhost:8080.

Ejemplo de localhost con https en Yandex
Ejemplo de localhost con https en Yandex
Ejemplo de localhost con https en Chrome
Ejemplo de localhost con https en Chrome

Ejecutando con Docker y Nginx

Si Docker y Nginx forman parte de tu configuración, la siguiente configuración del servidor te permite ejecutar HTTPS:

server {
    listen 443 ssl;
    server_name localhost;

    ssl_certificate /path/to/localhost.pem;
    ssl_certificate_key /path/to/localhost-key.pem;

    location / {
        root /var/www/html;
    }
}

Vincula los certificados y los archivos de configuración necesarios a tu contenedor Docker a través de un archivo de configuración de Docker Compose, como se muestra a continuación:

services:
    nginx: 
        image: nginx:latest 
        ports: 
        - "8081:443"
        volumes: 
        - ./localhost-key.pem:/etc/nginx/certs/localhost-key.pem
        - ./localhost.pem:/etc/nginx/certs/localhost.pem
        - ./nginx.conf:/etc/nginx/conf.d/default.conf
        - ./index.html:/var/www/html/index.html

Desinstalar mkcert

Si decides dejar de usar HTTPS para el desarrollo local o si vas a cambiar a otro método para manejar los certificados SSL, es posible que desees desinstalar mkcert.

Para eliminar mkcert de tu sistema, ejecuta el siguiente comando:

mkcert -uninstall

Este comando elimina la CA raíz tanto de tu sistema como del navegador. También debes eliminar el archivo de certificado raíz y cualquier par de certificados que hayas generado:

rm -r "$(mkcert -CAROOT)"

Conclusión

Implementar HTTPS en tu servidor local es crucial para probar correctamente características como service workers, cookies seguras y API de terceros que requieren una conexión segura. mkcert proporciona una forma eficiente de generar y administrar certificados SSL en varias plataformas y navegadores, lo que agiliza el proceso para los desarrolladores.

My Cart Close (×)

Tu carrito está vacío
Ver tienda