Blog

Infrastruktur 10 Min. Lesezeit

Cloudflare-Einrichtung für Unternehmenswebsites: Geschwindigkeit und Sicherheit, Schritt für Schritt

Das Einbinden einer Unternehmenswebsite hinter Cloudflare nimmt einen Nachmittag in Anspruch und beseitigt ganze Kategorien von Problemen: langsame Seiten für entfernte Besucher, Verkehrsfluten, Bots, die Ihre Login-Daten blockieren. Es führt auch neue Möglichkeiten ein, Dinge kaputt zu machen, wenn sie unvorsichtig gemacht werden. Dieser Leitfaden behandelt die Einrichtungsreihenfolge, die wichtigen Einstellungen und die Fehler, die uns am häufigsten passieren.

Titelbild: Cloudflare-Einrichtung für Unternehmenswebsites: Geschwindigkeit und Sicherheit, Schritt für Schritt

Kurz gesagt

  • Cloudflare erledigt drei Aufgaben für Sie: DNS, einen globalen Cache (CDN) und eine Sicherheitsschicht vor Ihrem Server (DDoS-Schutz, Firewall-Regeln, Bot-Filterung).
  • Verwenden Sie den SSL-Modus „Voll“ (streng), niemals „Flexibel“. Sperren Sie dann Ihren Server, sodass er nur Webverkehr von Cloudflare akzeptiert, andernfalls können Angreifer ihn einfach umgehen.
  • Statische Dateien aggressiv zwischenspeichern, niemals private oder Admin-Seiten zwischenspeichern und den Cache bei der Bereitstellung automatisch löschen.
  • Fügen Sie einige gezielte Regeln hinzu: Begrenzen Sie die Anmelde- und Checkout-Rate und befreien Sie Zahlungs-Webhooks von Herausforderungen.
  • E-Mail-Einträge müssen nur DNS bleiben und Ihre Protokolle müssen die echte Besucher-IP wiederherstellen. Diese beiden Details sind der Grund für die meisten „Es ging nach Cloudflare kaputt“-Tickets.

Cloudflare sitzt zwischen Ihren Besuchern und Ihrem Server. Besucher stellen eine Verbindung zum nahegelegenen Rechenzentrum von Cloudflare her, das zwischengespeicherte Dateien direkt bereitstellt, feindlichen Datenverkehr filtert und den Rest an Ihren Server weiterleitet. Für ein Unternehmen bedeutet das schnellere Seiten für Kunden, die weit von Ihrem Hosting-Standort entfernt sind, Schutz vor einfachen Denial-of-Service-Angriffen und einen Ort, an dem Sicherheitsregeln durchgesetzt werden können, ohne den Anwendungscode zu ändern. Viele Pläne beginnen kostenlos und kostenpflichtige Pläne bieten zusätzliche Funktionen. Sehen Sie sich daher den aktuellen Planvergleich an, bevor Sie sich entscheiden.

Es ist kein Ersatz für gepatchte Software und sicheren Code. Unsere PHP Sicherheitscheckliste gilt weiterhin. Stellen Sie sich Cloudflare als eine starke Eingangstür vor und nicht als Ersatz für das Abschließen der Räume im Inneren.

Bevor Sie beginnen

  • Machen Sie eine Bestandsaufnahme Ihres DNS. Exportieren oder scannen Sie jeden Datensatz bei Ihrem aktuellen DNS-Anbieter, einschließlich E-Mail-Datensätzen (MX, SPF, DKIM, DMARC) und Verifizierungseinträgen. Ein verpasster Datensatz ist die klassische Möglichkeit, E-Mails während einer Migration zu löschen.
  • Informieren Sie sich, wem das Domain-Registrierungskonto gehört, und stellen Sie sicher, dass es sich um ein Unternehmenskonto mit Multi-Faktor-Authentifizierung handelt. Dort werden Sie die Nameserver ändern.
  • Senken Sie die TTL Ihrer Schlüsseldatensätze möglichst einen Tag im Voraus, damit sich Änderungen schneller verbreiten.
  • Wählen Sie einen ruhigen Zeitpunkt und sagen Sie es dem Team. Planen Sie ein Rollback: Die alten Nameserver, aufgeschrieben.

Schritt 1: Fügen Sie die Site hinzu und überprüfen Sie DNS

Fügen Sie Ihre Domain im Cloudflare Dashboard hinzu. Es scannt vorhandene Datensätze. Vergleichen Sie diese mit Ihrem Lagerbestand und beheben Sie Lücken. Wählen Sie für jeden Datensatz zwischen zwei Modi:

  • Proxyed (orangefarbene Wolke): Der Datenverkehr läuft über Cloudflare. Verwenden Sie die Hostnamen für Ihre Website und Webanwendung.
  • Nur DNS (graue Wolke): Cloudflare beantwortet nur die DNS-Anfrage. Verwendung für Mailserver, SSH- oder FTP-Hostnamen und alles, was kein HTTP- oder HTTPS-Verkehr ist.

Aktualisieren Sie dann die Nameserver bei Ihrem Registrar. Sobald die Site als aktiv angezeigt wird, überprüfen Sie Ihre Site und senden Sie eine Test-E-Mail.

Schritt 2: Verschlüsselung richtig einrichten

Dies ist die Einstellung, die die meisten Websites kaputt macht. Cloudflare verfügt über mehrere SSL/TLS-Modi:

  • Flexibel: Verschlüsselt Besucher bei Cloudflare, sendet den Datenverkehr jedoch unverschlüsselt an Ihren Server. Es sieht so aus, als würde es funktionieren, aber der zweite Zweig ist offen und es kommt häufig zu Umleitungsschleifen. Vermeiden Sie es.
  • Vollständig: Verschlüsselt beide Zweige, überprüft jedoch nicht das Zertifikat Ihres Servers.
  • Vollständig (streng): verschlüsselt beide Zweige und überprüft das Zertifikat auf Ihrem Server. Dies ist diejenige, die Sie verwenden sollten.

Installieren Sie zunächst ein gültiges Zertifikat auf Ihrem Server. Ein Cloudflare Origin-CA-Zertifikat oder ein kostenloses Let's Encrypt-Zertifikat funktionieren beide. Wechseln Sie dann zu „Vollständig“ (streng), aktivieren Sie „Immer HTTPS verwenden“, legen Sie eine TLS-Mindestversion von 1.2 fest und aktivieren Sie HSTS erst, wenn alles über HTTPS funktioniert, da HSTS Browser anweist, einfaches HTTP für längere Zeit abzulehnen.

Schritt 3: Cloudflare unumgänglich machen

Wenn Angreifer die tatsächliche IP-Adresse Ihres Servers kennen, können sie Datenverkehr direkt dorthin senden und jeden von Ihnen konfigurierten Schutz überspringen. Beheben Sie dieses Problem auf zwei Arten:

  • Erlauben Sie Webverkehr zu Ihrem Server nur von den veröffentlichten IP-Bereichen von Cloudflare.
  • Stellen Sie die echte Besucher-IP auf Ihrem Webserver wieder her, da sonst jede Anfrage in Ihren Protokollen, Ratenlimits und Analysen so aussieht, als stamme sie von Cloudflare.
#!/usr/bin/env bash
# /opt/cf/update_cloudflare_ips.sh - run weekly from cron
set -euo pipefail
IPS="$(curl -fsS https://www.cloudflare.com/ips-v4) $(curl -fsS https://www.cloudflare.com/ips-v6)"

# 1) real visitor IP for Nginx
OUT=/etc/nginx/conf.d/cloudflare_real_ip.conf
{
  for r in $IPS; do echo "set_real_ip_from $r;"; done
  echo "real_ip_header CF-Connecting-IP;"
} > "$OUT.tmp" && mv "$OUT.tmp" "$OUT"
nginx -t && nginx -s reload

# 2) firewall: allow HTTPS only from Cloudflare (remove any generic "allow 443" rule first)
for r in $IPS; do ufw allow proto tcp from "$r" to any port 443 comment 'cloudflare'; done

Ein wichtiges Detail für Docker Benutzer: Von Docker veröffentlichte Ports umgehen die UFW-Regeln. Binden Sie Container hinter einem Reverse-Proxy an localhost oder beschränken Sie den Zugriff in der DOCKER-USER Firewallkette von Docker. Für eine stärkere Isolierung lässt Cloudflare Tunnel Ihren Server nur eine ausgehende Verbindung herstellen, sodass er überhaupt keine offenen eingehenden Web-Ports benötigt. Stellen Sie bei Zahlungs-Webhooks und anderen Server-zu-Server-Integrationen sicher, dass die IP-Regeln diese Anfragen weiterhin durchlassen, auch wenn sie nicht über Cloudflare erfolgen.

Schritt 4: Caching-Regeln

Standardmäßig speichert Cloudflare statische Dateien wie Bilder, CSS und JavaScript im Cache, jedoch kein HTML. Eine sinnvolle Richtlinie für eine typische PHP Site:

  • Statische Assets: für einen langen Zeitraum (einen Monat oder länger) zwischenspeichern. Verwenden Sie versionierte Dateinamen oder eine Abfragezeichenfolge wie app.css?v=123, damit eine neue Bereitstellung sofort übernommen wird.
  • Öffentliche HTML-Seiten (Marketingseiten, Blog): können mit einer Cache-Regel für Minuten bis Stunden zwischengespeichert werden. Testen Sie sorgfältig.
  • Cachen Sie niemals: Admin, Konto, Warenkorb, Checkout, API-Endpunkte und jede Seite, die von einem Anmelde-Cookie abhängt. Erstellen Sie eine Umgehungsregel für diese Pfade und für Anfragen, die Ihr Sitzungscookie enthalten.

Bereinigen Sie nach jeder Bereitstellung automatisch, sodass Kunden nie veraltete Dateien sehen. Erstellen Sie ein API-Token nur mit der Berechtigung „Cache Purge“ für diese Zone und rufen Sie es über Ihr Bereitstellungsskript auf:

# purge selected files after a deployment
curl -sS -X POST "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/purge_cache" \
  -H "Authorization: Bearer $CF_API_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{"files":["https://example.com/css/app.css","https://example.com/js/app.js"]}'

Schnellere Seiten helfen auch bei der Suche und den Conversions. Sehen Sie sich unseren Core Web Vitals Leitfaden für PHP Sites an, um zu erfahren, was auf der Serverseite behoben werden muss, sobald das CDN eingerichtet ist.

Schritt 5: Firewall, Bots und Ratenbegrenzung

  • Aktivieren Sie die verwalteten WAF-Regeln, die in Ihrem Plan verfügbar sind. Sie blockieren gängige Angriffsmuster, bevor sie Ihren Code erreichen.
  • Aktivieren Sie den zu Ihrem Plan passenden Bot-Schutz und beobachten Sie die Analysen, bevor Sie Maßnahmen ergreifen.
  • Ratenlimitsensible Endpunkte: Anmeldung, Passwort-Zurücksetzung, Anmeldung und Kasse. Brute-Force- und Card-Testing-Angriffe zielen genau darauf ab.
  • Vertrauenswürdigen Maschinenverkehr ausschließen: Webhooks von Zahlungsanbietern, Überwachungsdienste und Ihre eigenen Integrationen dürfen nicht von Browser-Herausforderungen betroffen sein, da eine an einen Webhook zurückgegebene Challenge-Seite wie ein Fehler aussieht.
# Custom rule 1: block probes for secrets and repositories (action: Block)
(http.request.uri.path contains "/.env" or http.request.uri.path contains "/.git" or http.request.uri.path contains "wp-config")

# Custom rule 2: let payment webhooks through (action: Skip, security features)
(http.request.uri.path in {"/webhooks/stripe" "/webhooks/paypal"})

# Rate limiting rule: at most 10 login attempts per minute per IP
(http.request.uri.path eq "/login" and http.request.method eq "POST")  =>  10 requests / 1 minute / IP

Die Regelsyntax und die verfügbaren Felder variieren je nach Plan. Behandeln Sie diese daher als Vorlagen und testen Sie sie zunächst im „Protokoll“-Modus. Behalten Sie auch den Schutz auf Anwendungsebene bei: Webhook-Signaturprüfungen, wie in unserem Stripe Webhooks-Leitfaden beschrieben, hängen niemals nur von Netzwerkregeln ab.

Schritt 6: Überprüfen Sie die Einrichtung

# is traffic going through Cloudflare?
curl -sI https://example.com | grep -iE "^(server|cf-cache-status|cf-ray)"

# does the origin refuse direct access? (replace with your server IP; expect a timeout or refusal)
curl -sI --max-time 8 https://203.0.113.10 -H "Host: example.com" -k

# are the nameservers and mail records right?
dig NS example.com +short
dig MX example.com +short
dig TXT example.com +short

Überprüfen Sie eine statische Datei zweimal: Die zweite Antwort sollte cf-cache-status: HIT anzeigen. Überprüfen Sie die Anmelde-, Checkout- und Admin-Abläufe mit einem echten Browser und senden und empfangen Sie eine Test-E-Mail.

Häufige Fehler

  • Flexibles SSL und die folgenden Umleitungsschleifen.
  • Proxy für den E-Mail-Hostnamen (es darf nur DNS sein) oder Vergessen eines E-Mail-Eintrags während der Verschiebung.
  • Private Seiten werden zwischengespeichert, sodass ein Kunde die Kontoseite eines anderen sehen kann. Umgehen Sie den Cache immer für angemeldeten Datenverkehr.
  • Der Ursprung bleibt offen: Die echte IP ist in alten DNS-Einträgen, E-Mail-Headern oder Zertifikatprotokollen sichtbar. Schränken Sie die Firewall ein und erwägen Sie eine Änderung der IP, wenn diese durchgesickert ist.
  • Die echte IP wird nicht wiederhergestellt, wodurch Ratenbeschränkungen, Protokolle und Betrugsprüfungen verletzt werden.
  • Anspruchsvolle Webhooks und APIs, die zu stillen Fehlern bei Zahlungen und Integrationen führen.
  • Größenbeschränkungen für Anfragen: Proxy-Anfragen haben je nach Plan eine maximale Körpergröße. Überprüfen Sie das aktuelle Limit, wenn Ihre Anwendung große Uploads akzeptiert.
  • Überwachung vergessen. Fügen Sie Warnungen für den Ablauf von Zertifikaten und Domänen hinzu und führen Sie Verfügbarkeitsprüfungen durch, wie in unserem Backup- und Überwachungsleitfaden beschrieben.

Eine einseitige Checkliste

  1. DNS-Inventar exportiert, Registrarkonto gesichert.
  2. Site hinzugefügt, Datensätze überprüft, Proxy nur für Webhostnamen.
  3. Ursprungszertifikat installiert, SSL-Modus voll (streng), HTTPS immer verwenden aktiviert.
  4. Firewall auf Cloudflare Bereiche beschränkt, echte Besucher-IP wiederhergestellt.
  5. Cache-Regeln für statische Assets, Umgehung für private Pfade, Bereinigen im Bereitstellungsskript.
  6. Verwaltetes WAF aktiviert, Ratenbegrenzungen für Login und Checkout, Webhooks ausgenommen.
  7. Verifizierungsbefehle werden ausgeführt, Warnungen konfiguriert, Rollback dokumentiert.

Wie wir helfen können

Wir konfigurieren Cloudflare, Hosting- und Deployment-Pipelines für PHP Anwendungen und verbinden sie mit Zahlungs-, CRM- und Messaging-Systemen. Informieren Sie sich über unseren Integrationsservice oder vereinbaren Sie einen kurzen Anruf. Wir überprüfen dann Ihre DNS-, SSL- und Caching-Einrichtung anhand dieser Checkliste.

Häufige Fragen

Lohnt sich Cloudflare für eine Website für kleine Unternehmen?

Für die meisten öffentlichen Websites ja. Eine schnellere Bereitstellung statischer Dateien, DDoS-Schutz, kostenloses verwaltetes DNS und einfaches HTTPS sind selbst bei einem kostenlosen Plan wertvoll. Bezahlte Pläne bieten stärkere Firewall-, Bot- und Leistungsfunktionen. Schauen Sie im aktuellen Tarifvergleich nach, was Sie brauchen.

Welchen SSL-Modus soll ich verwenden?

Vollständig (streng). Es verschlüsselt den Datenverkehr zwischen dem Besucher und Cloudflare sowie zwischen Cloudflare und Ihrem Server und überprüft das Zertifikat Ihres Servers. Vermeiden Sie Flexible, da die Verbindung zu Ihrem Server unverschlüsselt bleibt und häufig Umleitungsschleifen verursacht.

Können Angreifer Cloudflare umgehen?

Ja, wenn sie die echte IP Ihres Servers finden und dieser Datenverkehr von überall akzeptiert. Beschränken Sie Ihre Firewall auf die von Cloudflare veröffentlichten IP-Bereiche oder verwenden Sie Cloudflare Tunnel und ändern Sie die IP, wenn sie durchgesickert ist.

Warum funktionierte meine E-Mail nicht mehr, nachdem DNS zu Cloudflare verschoben wurde?

Normalerweise wurde bei der Migration ein E-Mail-Datensatz übersehen oder der E-Mail-Hostname wurde auf „Proxy“ gesetzt. E-Mail-Einträge wie MX, SPF, DKIM und DMARC müssen vorhanden sein und der Hostname des Mailservers darf nur DNS sein.

Soll ich HTML-Seiten auf Cloudflare zwischenspeichern?

Sie können dies für öffentliche Seiten wie Marketing- und Blog-Inhalte tun, indem Sie Cache-Regeln und ein sinnvolles Ablaufdatum verwenden. Speichern Sie niemals Admin-, Konto-, Warenkorb-, Checkout- oder andere personalisierte Seiten im Cache und leeren Sie den Cache bei jeder Bereitstellung.

Kostenloses Kennenlerngespräch

Unordentlicher Stack oder festgefahrene Integration - Integrono plant den klügsten ersten Schritt.

Sie bekommen eine Senior-Einschätzung zu Budgetfallen, Abhängigkeiten und ob kaufen, kleben oder bauen der richtige Weg ist - bevor die bezahlte Arbeit beginnt. Der CEO bleibt eingebunden.