Cloudflare Zero Trust Tunnel

Prerequisitos⌗
-
Apunta tu dominio a Cloudflare. Puede seguir el documento oficial(https://developers.cloudflare.com/dns/zone-setups/full-setup/setup/) para realizar una configuración completa si aún no lo ha hecho.
-
Habilite SSL universal. Esto generará un certificado SSL comodín gratuito para cubrir todos los subdominios de primer nivel.
-
Habilite Cloudflare Zero Trust. Los túneles se administran en el panel de Zero Trust. Puede seguir su documento oficial (https://developers.cloudflare.com/cloudflare-one/setup/) para suscribirse al plan gratuito y encontrarlo en Acceso.
Crear el tunnel (en este caso lo hare con Docker pero se puede usar en Windows, Mac, Debian Based, RedHat Based y Docker)⌗
En primer lugar, creo un tunnel demo en el dashboard
Luego selecciono Docker para obtener el comando “docker run”:
Este comando es bastante sencillo, ejecuta el comando de ejecución del túnel cloudflared con un token de credencial.
Ahora es el momento de exponer sus aplicaciones locales a Internet.
Es necesario crear la red “tunnel”
docker network create tunnel
Luego se puede ejecutar el siguiente comando para crear el contenedor “Cloudflared”
docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token Tokenentregadoporcloudflare
Una vez que el contenedor está funcionando, podemos ver el estado conectado en el dashboard. Cloudflare elegirá el centro más cercano a la máquina host.
Tunnel Apps⌗
Haga clic en Siguiente en la pantalla anterior y se nos llevará a la página siguiente para crear nuestra primera ruta.
- Nginx
Vamos a utilizar nginx como la primer aplicacion para la demo
Para esto vamos a ingresar en Public hostname, el nombre de: subdominio, dominio y path
En Service se configuran los servicios de backend al que queremos enrutar las solicitudes, vamos a iniciar nuestros contenedores sobre la red “tunnel” para que el contenedor “Cloudflared” encuentre al contenedor nginx, con el mismo nombre de host.
Existe mas info en esta documentacion(https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/tunnel-guide/local/local-management/ingress/#origin-configuration)
Si accedemos a https://nginx.p00lack.cc, obtendremos el error 502 porque aún no hemos iniciado nuestra aplicación.
Vamos a crear el contenedor nginx como se muestra a continuación.
docker run --detach \
--network tunnel \
--name nginx \
nginx:alpine
Si actualizamos la página, podemos ver la página nginx predeterminada.