senn-techsenn-tech
Infrastruktur
Infrastruktur2026-03-03· von Mag. (FH) Franz Senn

Reverse Proxy mit Caddy: HTTPS per Default

Ein Reverse Proxy ist die Eintrittspforte zu allen Diensten — intern und extern. Caddy ist unsere Wahl, weil es TLS-Zertifikate automatisch beschafft und erneuert, ohne dass jemand dran denken muss.

Warum ein Reverse Proxy?

Alle Dienste hinter einer IP, einer Eintrittspforte, einer SSL-Konfiguration. Der Reverse Proxy terminiert TLS und leitet weiter:

  • blog.senn-tech.com → interner Container senn-next:3000
  • helpdesk.senn-tech.com → Zammad-Webinterface
  • status.senn-tech.com → Uptime-Kuma-Statusseite

Das reduziert die Angriffsfläche: nur der Proxy ist dem Internet ausgesetzt, die Dienste dahinter sprechen nur im internen Netz.

Caddy: Die Caddyfile reicht

blog.senn-tech.com {
    reverse_proxy senn-next:3000
}

helpdesk.senn-tech.com {
    reverse_proxy zammad:8080
    basicauth {
        senn $2a$14$...
    }
}

Kein Certbot-Cron, kein manuelles Zertifikatsmanagement. Caddy holt und erneuert Let's-Encrypt-Zertifikate automatisch, leitet HTTP transparent auf HTTPS um und spricht HTTP/3 (QUIC) ohne Zusatzkonfiguration. Die erste Zeile genügt für TLS.

Upstreams mit eigenem Zertifikat

Spricht der Backend-Dienst selbst schon HTTPS — etwa ein Gateway vor einem internen Server —, terminiert Caddy nach aussen sauber und reicht intern per TLS weiter. Bei selbstsignierten internen Zertifikaten überspringt man die Prüfung gezielt:

intern.senn-tech.com {
    reverse_proxy https://10.0.0.3:443 {
        transport http {
            tls_insecure_skip_verify
        }
    }
}

Genau dieses Muster nutzen wir am öffentlichen Gateway, das den Traffic verschlüsselt an den internen Applikationsserver weitergibt.

Patterns, die wir einsetzen

BasicAuth für interne Dienste: Bevor Keycloak SSO greift, schützt eine einfache BasicAuth den Dienst zusätzlich. Zwei-Faktor in der Verteidigung.

Security-Header: HSTS, X-Content-Type-Options, X-Frame-Options und eine Content-Security-Policy lassen sich in einem header-Block zentral setzen — einmal definiert, für alle Sites importierbar.

Geo-Blocking: Kein Zugriff aus Ländern, mit denen Sie nicht im Geschäft sind. Caddy kann mit @geoblock und dem MaxMind-Modul nach Region filtern. Das reduziert das Hintergrundrauschen in den Logs drastisch.

Rate Limiting und Header-Härtung sind in wenigen Zeilen drin.

Caddy vs. Nginx vs. Traefik

Nginx kann alles, aber die Config-Syntax ist ein eigener Dialekt. Traefik spielt seine Stärke in dynamischen Docker-Umgebungen aus: Es entdeckt Container automatisch über Labels — ideal, wenn ständig neue Services kommen und gehen. Caddy sitzt dazwischen: mächtig genug für alles, was ein KMU braucht, statisch und damit nachvollziehbar konfiguriert — die Caddyfile ist nach einem Jahr noch verständlich.

Ein Wort zur Ausfallsicherheit

Ein Reverse Proxy ist ein Single Point of Failure. Fällt Caddy aus, ist alles von aussen weg. Wir lassen Caddy unter Proxmox als HA-VM laufen — fällt der Host aus, startet die VM auf dem nächsten Knoten. Die IP bleibt gleich (dank internem VLAN), die Dienste merken nichts.

Fazit

Ein Reverse Proxy ist kein optionaler Luxus, sondern die Grundlage für jede Multi-Service-Infrastruktur. Caddy macht es so einfach, dass es keine Entschuldigung gibt, es nicht zu tun.

FAQ
Warum Caddy und nicht Nginx oder Traefik?+

Nginx kann alles, aber seine Konfigurationssyntax ist ein eigener Dialekt. Traefik spielt die Stärke in dynamischen Docker-Umgebungen aus, wo Container über Labels automatisch entdeckt werden. Caddy sitzt dazwischen: mächtig genug für alles, was ein KMU braucht, statisch und nachvollziehbar konfiguriert — die Caddyfile ist nach einem Jahr noch verständlich. Für stabile, überschaubare Multi-Service-Infrastrukturen ist das die fairste Wahl.

Wie reduziert ein Reverse Proxy die Angriffsfläche?+

Nur der Proxy ist dem Internet ausgesetzt, die Dienste dahinter sprechen nur im internen Netz. Caddy terminiert TLS, leitet HTTP transparent auf HTTPS um und spricht HTTP/3 ohne Zusatzkonfiguration. Sicherheits-Header wie HSTS, X-Content-Type-Options und eine Content-Security-Policy lassen sich zentral setzen, Geo-Blocking filtert Zugriffe aus Ländern, mit denen Sie nicht im Geschäft sind.

Was passiert, wenn Caddy ausfällt?+

Ein Reverse Proxy ist ein Single Point of Failure — fällt er aus, ist alles von außen weg. Deshalb lassen wir Caddy unter Proxmox als HA-VM laufen: Fällt der Host aus, startet die VM auf dem nächsten Knoten, die IP bleibt dank internem VLAN gleich. Damit ist die Ausfallsicherheit der Eintrittspforte abgesichert, ohne die Einfachheit der einzelnen Caddyfile aufzugeben.