Cómo crear dominios locales HTTPS para tus Proyectos en Linux

Si desarrollas aplicaciones web en Linux, seguramente te has encontrado con el aviso del navegador que dice "Your connection is not private" (Tu conexión NO es privada) cuando pruebas tu app en localhost.

Aunque sabes que no es un problema de seguridad real, sí puede resultar molesto y además, impide probar correctamente funciones que dependen de un origen seguro, como service workers, geolocalización, permisos de cámara y micrófono, acceso al portapapeles o HTTP/2.

La forma tradicional de resolverlo implica crear manualmente una autoridad certificadora, firmar certificados, confiar en ellos en el sistema, editar /etc/hosts y configurar un reverse proxy. Funciona, pero no es precisamente rápido ni cómodo cuando lo tienes que repetir varias veces.

Aquí entra slim, una herramienta que automatiza todo ese proceso con un solo comando. Con ella puedes exponer tu proyecto local en un dominio limpio como https://myapp.test o similar, con certificado válido y sin advertencias del navegador.

¿Qué es slim?

La utilidad slim es un proxy reverso ligero escrito en Go que simplifica por completo la creación de dominios locales HTTPS. Se encarga de generar una CA local, crear certificados para cada dominio, confiar en ellos en el sistema, actualizar /etc/hosts y redirigir el tráfico al puerto local de tu proyecto.

Una vez activo, puedes acceder a tu aplicación con una URL limpia y segura, sin tener que pelearte con configuraciones manuales cada vez. Además, funciona bien con servidores de desarrollo modernos como Next.js, Vite o cualquier backend que escuche en un puerto local.

¿Por qué usar un dominio local HTTPS?

Usar HTTPS en local no es solo una cuestión estética o de comodidad. Hay muchas características del navegador que solo funcionan correctamente en orígenes seguros.

Algunos ejemplos:

  • Service Workers.
  • Geolocation API.
  • Clipboard API.
  • Cámara y micrófono.
  • HTTP/2.
  • Cookies con bandera Secure.

Si pruebas solo en http://localhost, puedes encontrarte con un comportamiento distinto al de producción. Con slim, reduces esa diferencia y trabajas en un entorno local más realista.

¿Cómo funciona slim?

Cuando ejecutas slim por primera vez, realiza varias tareas automáticamente:

  • Genera una autoridad certificadora local.
  • Registra la CA en el almacén de confianza del sistema.
  • Crea certificados por dominio bajo demanda.
  • Añade entradas a /etc/hosts.
  • Redirige el tráfico HTTP/HTTPS a tu aplicación local.
  • Mantiene el proxy en segundo plano para no molestarte.

En Linux, también puede usar reglas de redirección para gestionar puertos privilegiados sin necesidad de mantener el proceso principal como root.

¿Cómo instalar slim en Linux?

La instalación más rápida es mediante el script oficial:

curl -sL https://slim.sh/install.sh | sh

Si prefieres compilarlo desde el código fuente, necesitas tener Go instalado en tu sistema.

git clone https://github.com/kamranahmedse/slim.git
cd slim
make build
make install

Si quieres comprobar que todo ha salido bien, puedes usar:

slim version

¿Cómo crear un dominio local HTTPS?

Supongamos que tienes una aplicación corriendo en el puerto 3000 y quieres acceder a ella como https://myapp.test.

Primero, asegúrate de que tu servidor de desarrollo ya está en marcha. Puede ser una app Node.js, Flask, Go o cualquier otro servidor local.

Luego ejecuta:

slim start myapp --port 3000

La primera vez que lo uses, slim generará la CA, registrará el certificado, actualizará /etc/hosts y pondrá en marcha el proxy en segundo plano.

Una vez termine, podrás abrir en el navegador:

https://myapp.test

Con esto, accederás a tu proyecto con HTTPS real y sin avisos de certificado.

¿Cómo gestionar dominios locales?

Una vez que tienes un dominio activo, estos son los comandos más útiles para el día a día:

slim list
slim list --json
slim logs
slim logs -f myapp
slim stop myapp
slim stop

¿Qué hace cada uno de ellos?

  • slim list: muestra los dominios activos.
  • slim list --json: muestra la misma información en formato JSON.
  • slim logs: enseña los registros de acceso.
  • slim logs -f myapp: sigue los logs en tiempo real para un dominio concreto.
  • slim stop myapp: detiene el proxy de un dominio.
  • slim stop: detiene todos los dominios activos y el demonio de slim.

¿Qué opciones útiles de slim existen?

slim también ofrece algunas opciones interesantes al crear un dominio.

Modos de log

Puedes decidir cuánto detalle quieres en los registros:

slim start myapp -p 3000 --log-mode full
slim start myapp -p 3000 --log-mode minimal
slim start myapp -p 3000 --log-mode off
  • full: registra toda la petición y respuesta.
  • minimal: muestra información básica.
  • off: desactiva los logs de acceso.

Esperar al servidor upstream

Si tu servidor tarda unos segundos en arrancar, puedes usar --wait:

slim start myapp -p 3000 --wait --timeout 30s

Esto hace que slim espere hasta que el puerto esté realmente disponible antes de continuar.

¿Dónde guarda slim sus datos?

Toda la información de ejecución se guarda dentro de ~/.slim/:

~/.slim/config.yaml
~/.slim/certs/
~/.slim/ca/
~/.slim/access.log

Aquí puedes encontrar la configuración, los certificados, la autoridad certificadora local y los registros de acceso.

Si alguna vez necesitas, revisar o respaldar un certificado, esta carpeta es el punto de partida.

¿Cómo desinstalar slim?

Si quieres eliminar todo lo que slim ha configurado, incluida la CA, los certificados, las entradas de hosts, las reglas de redirección y los archivos de configuración, usa:

slim uninstall

Esto deja el sistema limpio y revierte la mayor parte de los cambios aplicados por la herramienta.

¿Cuándo merece la pena usarlo?

slim resulta especialmente útil si:

  • desarrollas aplicaciones web en Linux de forma habitual,
  • necesitas probar funciones que exigen HTTPS,
  • trabajas con varios proyectos locales,
  • quieres evitar configurar certificados manualmente,
  • o buscas una experiencia más parecida a producción.

Es una solución muy práctica para eliminar fricción en el desarrollo local.


Conclusión

La herramienta slim de Linux es, una gran utilidad para crear dominios locales HTTPS en Linux sin tener que configurar manualmente certificados, hosts y proxies reversos. Si trabajas con apps web y necesitas probar funciones que solo funcionan en orígenes seguros, slim te ahorra tiempo y te da un entorno local más realista.

En la práctica, te permite pasar de localhost a algo como https://myapp.test con muy poco esfuerzo, lo que mejora tanto la comodidad como la fidelidad del entorno de pruebas.

Vistas: 0