CLOUDFLARE · ANLEITUNG
Cloudflare mit eigener Domain einrichten: DNS, SSL, WAF, Workers KV und Tunnel (Mai 2026)
Anleitung von der Domain-Registrierung über Nameserver-Wechsel, SSL-Modi, DNS-Records, Page-Rules, Workers KV, WAF-Regeln und Cloudflare-Tunnel für Origin-Schutz.
Recherche & Faktencheck: DuneDive LLC · Stand: 2026-05
Worum geht es hier?
Diese Anleitung führt von der leeren Domain zur produktiv lauffähigen Cloudflare-Konfiguration. Sie registrieren eine Domain (bei einem CH/EU-Registrar oder bei Cloudflare direkt), wechseln die Nameserver zu Cloudflare, wählen den passenden SSL-Modus, setzen die wichtigsten DNS-Records, konfigurieren Page-Rules, richten Workers KV ein, aktivieren ein Basis-WAF-Setup und schliessen den Origin via Cloudflare Tunnel vor Direkt-Zugriff aus dem Internet aus.
Die Anleitung ist für drei Zielgruppen geschrieben. Erstens: KMU, die eine Domain neu aufsetzen und von Anfang an sauber. Zweitens: Treuhand- und Anwaltskanzleien, die eine bestehende Domain auf Cloudflare migrieren und dabei den Datenschutz schärfen. Drittens: Entwickler, die Workers KV als kostenlosen Key-Value-Store für kleine Anwendungen brauchen.
Voraussetzung: eine Domain (bestehend oder neu zu registrieren), ein Cloudflare-Account (Free-Plan reicht für 90% der KMU-Fälle), ein Origin-Server hinter der Domain (Hetzner, AWS, Render – egal). Setup-Zeit: 2-4 Stunden Konfiguration plus 12-48 Stunden Nameserver-Propagation. Cloudflare Free ist kostenlos; Pro EUR 20/Monat lohnt erst bei Page-Rules-Limit oder Image-Optimization-Bedarf.
Warum Cloudflare lohnt
Cloudflare ist Mai 2026 die einfachste Lösung für drei Probleme, die jedes KMU mit eigener Domain hat: SSL-Zertifikate ohne Aufwand, DDoS-Schutz gratis im Free-Plan, und ein WAF, das den Grossteil der opportunistischen Angriffsversuche abfängt. Wer ohne Cloudflare direkt auf einen Hetzner-Server zeigt, ist nicht nur für DDoS, sondern auch für SSL-Renewal-Vergessen und automatische Bot-Scans verantwortlich – die Cloudflare-Schicht nimmt all das ab.
Der zweite Hebel ist Workers KV. Cloudflare bietet im Free-Plan einen Key-Value-Store mit 100.000 Reads pro Tag und 1.000 Writes – genug für Feature-Flags, Session-Tokens, Rate-Limit-Counters oder kleine Anwendungs-State. Workers selbst (das Compute-Layer) haben 100.000 Requests pro Tag gratis, was für Mini-APIs und Edge-Logik (Geo-Redirect, A/B-Tests, Header-Modifikationen) reicht. Wer das nicht nutzt, bezahlt für einen kleinen Server, der das gleiche tut.
Der dritte Punkt ist der Cloudflare Tunnel (früher Argo Tunnel). Ein Daemon (cloudflared) auf dem Origin-Server baut eine ausgehende WebSocket-Verbindung zu Cloudflare auf. Cloudflare kann dadurch den Origin erreichen, ohne dass eine offene eingehende Verbindung am Server existiert. Im Klartext: der Server hat keine Public-IP-Exposition mehr, alle Inbound-Ports können geschlossen werden. Das eliminiert eine ganze Klasse von Angriffsvektoren und ist für Treuhand-/Kanzlei-Server der saubere Pfad.
Der vierte Punkt ist EU-Konformität. Cloudflare hat seit 2024 die "EU Data Localization Suite" – gegen einen Aufpreis (Enterprise) bleiben alle Logs und Cache-Daten in EU-Datacentern. Für den Free-Plan gilt das nicht voll, aber: Cloudflare ist im aktuellen EDÖB-Konsultations-Stand als "akzeptabel mit angemessenen Schutzmassnahmen" eingestuft, wenn TIA dokumentiert und Datenfluss begrenzt ist (kein PII im URL, kein Vollzugriff auf Mandanten-Daten über CDN-Cache).
Wie das Setup zusammenhängt
Die Architektur hat fünf Schichten: Domain und Nameserver, SSL-Mode, DNS-Records, Sicherheits-Schicht (WAF + Rate-Limiting), Compute-Schicht (Workers, KV, Tunnel).
Domain und Nameserver: Domain bleibt beim Registrar (z.B. switch.ch für .ch-Domains, Cloudflare Registrar für .com/.app). Im Cloudflare-Dashboard die Domain als Site hinzufügen – Cloudflare zeigt zwei Nameserver wie elsa.ns.cloudflare.com und tom.ns.cloudflare.com. Diese im Registrar setzen. Propagation 12-48h.
SSL-Mode: drei Optionen. "Flexible" verschlüsselt nur User → Cloudflare, Cloudflare → Origin geht im Klartext (HTTP) – für Test, niemals produktiv. "Full" verschlüsselt beide Strecken, aber Cloudflare akzeptiert auch self-signed-Zertifikate am Origin. "Full (Strict)" verschlüsselt beide und verlangt ein gültiges Zertifikat am Origin – der einzig richtige Modus für Production. Origin-Zertifikat: Let's Encrypt via Caddy/Traefik/certbot, oder ein Cloudflare-Origin-CA-Zertifikat (15 Jahre gültig, kostenlos, nur durch Cloudflare geprüfbar).
DNS-Records: vier Standard-Typen. A-Record (z.B. @ → 94.130.35.250) zeigt auf den Origin. AAAA-Record für IPv6 (falls Origin IPv6 hat). CNAME (z.B. www → ihre-domain.ch) leitet www auf root. MX-Record für E-Mail (z.B. @ → mail.brevo.com mit Prio 10, falls Brevo eingehende Mails übernimmt; sonst eigener Mailserver). Cloudflare-Proxy (orange Wolke) auf A/AAAA aktivieren – versteckt die Origin-IP und aktiviert WAF/Cache. MX und TXT immer DNS-only (graue Wolke).
Page Rules / Rulesets: Page Rules (Free: 3 Regeln) erlauben URL-Pattern-basiertes Verhalten. Typische Regeln: `*ihre-domain.ch/api/*` → Cache-Level Bypass (API soll nicht gecacht werden). `*ihre-domain.ch/static/*` → Cache-Level "Cache Everything", Edge-TTL 1 Monat (statische Assets aggressiv cachen). `*ihre-domain.ch/admin*` → Always Use HTTPS, Security Level High. Modernerer Ersatz: Cloudflare Rules (Configuration Rules, Cache Rules, Redirect Rules, Transform Rules), die mehr Granularität bieten.
Workers KV: im Dashboard unter "Workers & Pages → KV" einen Namespace anlegen (z.B. "session-tokens"). Im Worker-Code: `await env.SESSIONS.put(key, value, {expirationTtl: 3600})`. Reads: `await env.SESSIONS.get(key)`. Globale Replikation in 300+ POPs, Eventually-Consistent (Schreib-Latenz weltweit 60-90 Sekunden).
WAF: Free-Plan hat "Managed Rules → Free Plan" – eine Basisliste bekannter Angriffsmuster (SQL Injection, XSS, Bot-Patterns). Im Dashboard unter "Security → WAF" aktivieren. Custom Rules: 5 Regeln im Free. Beispiel: `(http.request.uri.path contains "/wp-admin" and not ip.src in {<eigene-IPs>})` → Block. Rate Limiting: 1 Regel Free, z.B. `(http.request.uri.path eq "/api/login")` mit 10 Requests/Minute pro IP.
Cloudflare Tunnel: auf Origin `wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb && apt install ./cloudflared-linux-amd64.deb`. `cloudflared tunnel login` (OAuth-Flow im Browser). `cloudflared tunnel create my-origin` – gibt ein UUID zurück. Im Cloudflare-Dashboard "Zero Trust → Networks → Tunnels" sehen Sie den Tunnel, fügen einen Hostname hinzu (z.B. app.ihre-domain.ch → http://localhost:3000). Auf Origin `cloudflared tunnel run my-origin` (oder als Systemd-Service installieren mit `cloudflared service install`). Inbound-Firewall am Server: nichts mehr offen, nur Outbound 443.
Cloudflare-Setup in 12 Schritten
- 01Schritt 1 – Domain registrieren oder Cloudflare-Site hinzufügen: Bestehende Domain: im Cloudflare-Dashboard "Add a Site" → Domain eingeben → Free-Plan wählen. Cloudflare scannt DNS am bisherigen Provider und übernimmt die Records automatisch. Neue Domain: Cloudflare Registrar (.com USD 10/Jahr, .ch nicht möglich – dort switch.ch oder Hostpoint).
- 02Schritt 2 – Nameserver wechseln: Cloudflare zeigt zwei Nameserver (z.B. elsa.ns.cloudflare.com und tom.ns.cloudflare.com). Beim Registrar diese Nameserver eintragen, alte löschen. Cloudflare prüft alle 30 Minuten – Status wird im Dashboard auf "Active" wechseln, typisch 12-48h.
- 03Schritt 3 – SSL-Mode auf Full (Strict) setzen: Im Dashboard "SSL/TLS → Overview" → "Full (strict)". Origin braucht ein gültiges Zertifikat: Let's Encrypt via Caddy/Traefik (automatisch), oder Cloudflare Origin CA Cert generieren (gültig 15 Jahre, in "SSL/TLS → Origin Server → Create Certificate", auf dem Server in nginx oder Caddy referenzieren).
- 04Schritt 4 – DNS-Records prüfen und ergänzen: "DNS → Records". A-Record auf Origin-IP (orange Wolke = proxied). CNAME www → ihre-domain.ch (proxied). MX-Records DNS-only (graue Wolke). SPF/DKIM/DMARC TXT-Records DNS-only. Optional CAA-Record `0 issue "letsencrypt.org"` zur Beschränkung der CA.
- 05Schritt 5 – Page Rules / Cache Rules setzen: "Rules → Cache Rules" (modernere Variante). Regel 1: `URI Path → starts with → /api/`, Action: Cache Eligibility = bypass. Regel 2: `URI Path → starts with → /static/`, Action: Cache TTL = 1 month, Browser TTL = 1 day. Regel 3: `URI Path → contains → /admin`, Action: Security Level = high.
- 06Schritt 6 – Workers KV einrichten: "Workers & Pages → KV" → "Create namespace" (z.B. "sessions"). Im Worker-Code: `wrangler kv namespace create sessions` im wrangler.toml. Beispiel Worker: `export default { async fetch(req, env) { const key = req.url.split("?")[1]; await env.SESSIONS.put(key, "value", {expirationTtl: 3600}); return new Response("OK"); } }`. Deploy mit `wrangler deploy`.
- 07Schritt 7 – WAF-Basis aktivieren: "Security → WAF → Managed Rules". "Cloudflare Free Managed Ruleset" auf "Enable". Sensitivity "Medium". "Security → WAF → Custom Rules" → "Create rule": Expression `(http.request.uri.path contains "/wp-admin") or (http.request.uri.path contains "/xmlrpc.php")`, Action: Block. Eine zweite Regel: `(cf.bot_management.score lt 30 and not cf.bot_management.verified_bot)`, Action: Managed Challenge.
- 08Schritt 8 – Rate-Limiting auf /api/login: "Security → WAF → Rate Limiting Rules" (Free: 1 Regel). Expression: `http.request.uri.path eq "/api/login" and http.request.method eq "POST"`. Charakteristik: "IP". Period: 1 minute. Requests: 10. Action: Block for 1 hour.
- 09Schritt 9 – cloudflared installieren auf Origin: SSH zum Origin. `wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb`. `apt install ./cloudflared-linux-amd64.deb`. `cloudflared tunnel login` – öffnet Browser-Flow, autorisieren. `cloudflared tunnel create my-origin` – Tunnel-UUID notieren.
- 10Schritt 10 – Tunnel-Hostname und Routing: Im Dashboard "Zero Trust → Networks → Tunnels" → den neuen Tunnel öffnen → "Public Hostname" hinzufügen: Subdomain `app`, Domain `ihre-domain.ch`, Service `http://localhost:3000`. Auf Origin Config-Datei `/etc/cloudflared/config.yml` schreiben: `tunnel: <UUID>`, `credentials-file: /root/.cloudflared/<UUID>.json`, `ingress: - hostname: app.ihre-domain.ch service: http://localhost:3000 - service: http_status:404`.
- 11Schritt 11 – cloudflared als Service starten: `cloudflared service install`. `systemctl enable cloudflared && systemctl start cloudflared`. `systemctl status cloudflared` – muss running zeigen. Im Dashboard sollte der Tunnel als "Healthy" erscheinen. Test: https://app.ihre-domain.ch sollte den Origin-Service zeigen.
- 12Schritt 12 – Server-Firewall härten: Auf Origin alle inbound TCP-Ports schliessen ausser 22 (SSH, idealerweise nur von eigener IP). `ufw default deny incoming`, `ufw allow from <eigene-ip> to any port 22`, `ufw enable`. Origin ist jetzt von aussen nur über Cloudflare Tunnel erreichbar – keine Direkt-Exposition mehr. Optional: cloudflared-IPs whitelisten falls SSH über Cloudflare Access laufen soll.
Wann Cloudflare die richtige Wahl ist
Cloudflare passt für 90% aller KMU-Domains. Konkret: (a) jede Website mit Public-Zugang braucht DDoS-Schutz und SSL – gratis bei Cloudflare. (b) jede Anwendung mit Login-Formular braucht WAF und Rate-Limiting – gratis bei Cloudflare. (c) jeder Origin-Server mit sensitiven Daten braucht Cloudflare Tunnel, um die Public-IP zu verstecken.
Konkrete Cases: Eine Treuhand-Website auf Hetzner mit Mandanten-Login → Cloudflare Free + Tunnel + WAF-Block für /wp-admin und /xmlrpc.php. Eine n8n-Instanz, die nur intern erreichbar sein soll → Cloudflare Tunnel + Zero Trust Access mit Email-Whitelist. Eine Anwalts-Präsenz mit Kontaktformular → Cloudflare Pro für Image-Optimization plus Bot-Protection.
Für rein interne Anwendungen ohne Internet-Exposition ist Cloudflare overkill – VPN (Tailscale, WireGuard) ist der einfachere Pfad. Für extreme High-Performance-Workloads mit >1M Requests/Tag sind dedizierte CDNs (Bunny CDN, Fastly) preislich teilweise besser.
Wann Cloudflare NICHT die richtige Wahl ist
Cloudflare passt nicht, wenn (a) der Use-Case extrem datenschutz-kritisch ist und auch CDN-Cache-Daten in EU bleiben müssen – für Free-Plan ist das nicht garantiert, nur "EU Data Localization Suite" (Enterprise) erfüllt das voll. (b) die Anwendung WebSocket-heavy ist mit langlebigen Verbindungen – Cloudflare Free hat 100s WebSocket-Timeout, Pro 4h, Enterprise konfigurierbar. (c) das Datenvolumen extrem hoch ist (>10TB/Monat) – der Free-Plan ist fair-use, bei massivem Trade kommen Drosselungen oder Aufforderungen zum Upgrade.
Weitere Fallen: Cloudflare-Proxy (orange Wolke) auf einer MX-Record-Zeile – funktioniert nicht, Mail-Server-Verbindung bricht. Cloudflare-Proxy auf SSH-Subdomain (ssh.ihre-domain.ch) – funktioniert nicht, SSH ist kein HTTP. SSL-Modus "Flexible" in Produktion lassen – User-Daten gehen zwischen Cloudflare und Origin im Klartext. Page Rule mit "Cache Everything" auf einer Login-Page – Session-Token werden global gecacht, alle User sehen dieselbe Session.
Vor- und Nachteile
STÄRKEN
- SSL, DDoS-Schutz, WAF-Basis und CDN gratis im Free-Plan
- Cloudflare Tunnel eliminiert Direkt-Exposition des Origin-Servers
- Workers KV als kostenloser Key-Value-Store für 100k Reads/Tag
- Globales Netzwerk mit 300+ POPs liefert niedrige Latenz weltweit
SCHWÄCHEN
- Free-Plan-EU-Datenlokalisation ist nicht voll garantiert – Enterprise nötig für 100% EU-Hold
- Bei Cloudflare-Ausfall (selten, aber existiert) ist die Domain global down
- WebSocket-Timeout 100s im Free – für lange Verbindungen zu kurz
- Cloudflare-spezifische Worker-Runtime – nicht standardisiertes Node.js, leichte Lock-in-Tendenz
Häufige Fragen
Was kostet Cloudflare für ein KMU?
Cloudflare Free: 0. DDoS, SSL, WAF Basis, 100k Worker-Requests/Tag, 100k KV-Reads/Tag, Tunnel unlimited – alles inkludiert. Cloudflare Pro EUR 20/Monat pro Domain: mehr WAF-Regeln, Image-Optimization, Polish, mobile-Optimierung. Business EUR 200/Monat: erweiterte WAF, fortgeschrittene Rate Limits. Für 90% der KMU reicht Free. Pro lohnt erst bei Bedarf an Image-Optimization (z.B. Foto-lastige Sites) oder mehr als 5 WAF-Regeln.
Wie schütze ich den Origin trotz Cloudflare?
Drei Massnahmen kombinieren. (1) Cloudflare Tunnel – kein offener Inbound-Port am Server, Direkt-IP nicht mehr ansprechbar. (2) Origin-Firewall (ufw) blockt Direkt-Zugriff zusätzlich. (3) Cloudflare WAF + Authenticated Origin Pulls (mTLS): Cloudflare schickt ein Zertifikat mit, Origin akzeptiert nur Requests mit diesem Zertifikat – verhindert IP-Leak-Bypass. Für Treuhand/Anwalts-Server: alle drei einsetzen.
Kann ich Workers KV als richtige Datenbank nutzen?
Nein, für transaktionale Workloads ungeeignet. KV ist Eventually-Consistent – Schreibungen sind weltweit nach 60-90 Sekunden sichtbar. Für Session-Tokens, Feature-Flags, Rate-Limit-Counter, kleine Caches funktioniert es bestens. Für Datenbank-Workloads mit konsistenten Reads: Cloudflare D1 (SQLite-kompatibel, betas seit 2024, beta-stable 2026) oder Cloudflare Durable Objects (Strong-Consistent, etwas teurer). Klassische Postgres bleibt für komplexe Workloads die richtige Wahl.
Was sagt der EDÖB zu Cloudflare?
Stand Mai 2026: Cloudflare ist im laufenden EDÖB-Konsultations-Stand "akzeptabel mit angemessenen Schutzmassnahmen". Das bedeutet: TIA dokumentieren, Datenfluss auf das Notwendige beschränken, keine PII in URLs/Headern routen die Cloudflare lesen kann (oder via Worker maskieren). Für maximale Sicherheit: "EU Data Localization Suite" (Enterprise) – alle Logs und Cache-Daten bleiben in EU-POPs, Kostenpunkt 4-stellig pro Monat. Für Treuhand-Standard ist Free + TIA + IP-Maskierung der pragmatische Weg.
Verwandte Themen
Quellen
- Cloudflare Documentation – Getting started with Cloudflare · 2026-05
- Cloudflare Tunnel – secure origin connectivity · 2026-05
- Cloudflare Workers KV – global key-value store · 2026-04
- Cloudflare WAF – custom rules and managed rulesets · 2026-04
- EDÖB – current consultation on US cloud providers and TIA practice · 2026-03
PASSEND ZU IHREM STACK?