# Caddy detrás de un proxy inverso o CDN: usar tls internal

- Link: https://binariocero.com/linux/caddy-detras-de-un-proxy-inverso-o-cdn-usar-tls-internal
- Published: 2026-03-02T11:39:51+01:00
- Author: Juan José Fernández Durán

![Loading](https://binariocero.com/wp-content/plugins/page-views-count/ajax-loader-
2x.gif)

Si ponemos **Caddy** detrás de un proxy inverso o de un CDN como **Cloudflare**,
no debe intentar emitir certificados públicos automáticamente.

En este escenario:

 * El certificado público lo gestiona el proxy o el CDN.
 * Caddy no está expuesto directamente a Internet.
 * Los challenges ACME pueden fallar.
 * No necesitamos Let's Encrypt en Caddy.

Por eso debemos añadir:

    ```wp-block-preformatted
    tls internal
    ```

Esto hace que Caddy:

 * Use su propia CA interna.
 * Genere certificados internos automáticamente.
 * Permita cifrado TLS entre el proxy/CDN y Caddy.
 * Evite problemas con validaciones externas.

# Ejemplo completo de configuración

Configuración típica para un WordPress o sitio PHP detrás de proxy/CDN:

    ```wp-block-preformatted
    www.midominio.com, midominio.com {        # Ruta del sitio web        root * /var/www/midominio        # TLS interno (IMPORTANTE si está detrás de proxy/CDN)        tls internal        # Servidor de archivos estáticos        file_server        # Compresión        encode gzip        # PHP-FPM        php_fastcgi unix//run/php/php8.4-fpm.sock}
    ```

# ¿Por qué es necesario?

Si no ponemos `tls internal`:

 * Caddy intentará solicitar certificados públicos.
 * Fallará si está detrás de Cloudflare en modo proxy.
 * Puede generar errores 502 o fallos SSL.
 * Complica el despliegue sin necesidad.

Si el proxy frontal ya hace la terminación TLS pública, Caddy solo necesita cifrado
interno o, como mínimo, no debe gestionar certificados públicos.

# Resumen rápido

Si Caddy está:

 * Detrás de Nginx
 * Detrás de HAProxy
 * Detrás de Cloudflare
 * Detrás de cualquier CDN

Añade siempre:

    ```wp-block-preformatted
    tls internal
    ```

Es simple, limpio y evita problemas de certificados en arquitecturas con proxy inverso.
