POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Del 404 al candado verde: arreglé mi proxy SMS en Rust en GCP con Caddy

Del 404 al candado verde: así arreglé mi proxy SMS en Rust en GCP con Caddy

Publicado el 19/09/2025

Del 404 al candado verde: arreglé mi proxy SMS en Rust en GCP con Caddy

Resumen rápido: mi proxy SMS escrito en Rust funcionaba en https://203.0.113.45:8080 pero al integrarlo con un Cloudflare Worker y el frontend aparecieron errores Cloudflare 1003 y advertencias de navegador por falta de HTTPS. La solución fue poner un nombre DNS ejemplo example-proxy.example.com apuntando a la VM, abrir puertos 80 y 443, poner Caddy como reverse proxy que obtiene un certificado Lets Encrypt automáticamente y dejar que Caddy haga TLS mientras mi app Rust escucha en localhost 127.0.0.1:8080. Resultado: endpoint HTTPS limpio y estable, y una variable de entorno para el Worker SMS_API_URL=https://example-proxy.example.com/sms/send

Por qué escribo esto: construí un proxy SMS en Rust y quiero compartir lo que realmente significan los errores, cómo fluye una petición en la pila web y los pasos prácticos que puedes usar en producción. También es una oportunidad para recordar que en Q2BSTUDIO ofrecemos servicios profesionales de desarrollo, desde aplicaciones a medida y software a medida hasta soluciones cloud y automatización.

Síntomas y su significado: 404 Not Found significa que el origin no tiene una ruta para el path solicitado, es problema del router de tu app. Cloudflare 1003 ocurre cuando intentas acceder a través de IP cruda o con Host header que no coincide; Cloudflare exige un dominio conocido por la zona. Problemas de mixed content aparecen cuando el frontend es HTTPS y la API es HTTP; los navegadores bloquearán o advertirán. Solución: HTTPS en el origen o un reverse proxy que termine TLS.

Paso a paso práctico: 1) Apunta un hostname a tu VM con un A record. 2) Abre puertos 80 y 443 en GCP con comandos gcloud si usas Google Cloud, por ejemplo gcloud compute firewall-rules create allow-http --allow tcp:80 y gcloud compute firewall-rules create allow-https --allow tcp:443 3) Instala Caddy, por ejemplo sudo apt update y sudo apt install -y caddy 4) Crea el archivo /etc/caddy/Caddyfile con el contenido example-proxy.example.com { reverse_proxy 127.0.0.1:8080 } 5) Ejecuta tu binario Rust ligado a 127.0.0.1:8080 para dejar el puerto 8080 privado 6) Prueba con curl -I https://example-proxy.example.com/health o envía una petición POST a https://example-proxy.example.com/sms/send 7) Configura la variable de entorno de tu Worker SMS_API_URL=https://example-proxy.example.com/sms/send y despliega

Qué ocurre en el flujo: DNS resuelve example-proxy.example.com a la IP de la VM. El cliente se conecta a 443 y mediante SNI indica el hostname. Caddy presenta el certificado Lets Encrypt para ese nombre, termina TLS y hace reverse proxy a https://127.0.0.1:8080. La respuesta viaja cifrada hasta el cliente. Beneficios: candado verde, sin mixed content, sin Cloudflare 1003 y una URL estable para el frontend y Workers.

Consejos de seguridad y producción: liga tu servicio Rust a 127.0.0.1, cierra 8080 en el firewall si antes estaba abierto, usa variables de entorno para endpoints y secretos, aplica rate limiting y autenticacion en el endpoint /sms/send, monitoriza logs con journalctl y las bitacoras de la app, y mantén Caddy y el sistema actualizados. Si prefieres alternativas, también puedes usar un balanceador HTTPS gestionado o un Cloudflare Tunnel para evitar abrir puertos.

Preguntas frecuentes rápidas: Si Caddy no obtiene certificado revisa que el DNS apunte bien y que 80 y 443 estén accesibles. Si sigues viendo 404 revisa las rutas de tu router en Rust. Respecto a CORS, si el Worker llama al origin server a server normalmente no necesitas CORS en el origin. En entornos que requieren escala y gestión, considera servicios gestionados en la nube y nosotros en Q2BSTUDIO podemos ayudar con migraciones y arquitectura segura, incluyendo servicios cloud AWS y Azure y soporte para integraciones con inteligencia artificial y soluciones de business intelligence.

Sobre Q2BSTUDIO: somos una empresa de desarrollo de software que crea aplicaciones a medida y soluciones de software a medida, especializada en inteligencia artificial, ia para empresas, agentes IA, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio y power bi. Ofrecemos auditorias de seguridad, pentesting, arquitecturas escalables y desarrollos a medida para empresas que necesitan llevar sus procesos al siguiente nivel.

Palabras clave integradas para SEO: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.

Checklist final: DNS apuntando al VM, firewall GCP con 80 y 443 abiertos, Caddy instalado y configurado como reverse_proxy a 127.0.0.1:8080, app Rust ligada a 127.0.0.1:8080, pruebas con curl, y Worker apuntando a SMS_API_URL con https. Resultado final: tu proxy SMS en Rust listo para producción con HTTPS y confianza del navegador.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio