Hier erfahren Sie, wie man mithilfe der Cloudflare API oder des Cloudflare-Befehlszeilentools flarectl mehrere Websites (10 oder mehr) gleichzeitig in Cloudflare aufnimmt.
Übersicht
Wenn Sie mehrere Sites (10 oder mehr) gleichzeitig in Cloudflare aufnehmen möchten, können Sie dies über die Cloudflare API tun. Mehrere Websites gleichzeitig aufzunehmen, kann aus folgenden Gründen nützlich sein:
- wenn Sie mehrere Domains betreiben, die auf eine einzige kanonische Domain zurückgreifen, z. B. Domains in verschiedenen Ländern (.com.au, .co.uk usw.), die Sie durch Cloudflare schützen möchten
- wenn Sie eine Agentur oder IT-Beratung sind und im Auftrag Ihrer Kunden mehrere Domains verwalten (Hinweis: Sie sollten unser Partnerprogramm in Betracht ziehen!)
- wenn Sie vorhandene Gruppe von Websites auf Cloudflare verschieben
Durch die Verwendung der API können Sie schnell und effizient mehrere Sites hinzufügen, insbesondere wenn Sie bereits damit vertraut sind, Ihre Nameserver zu ändern oder einen DNS-Eintrag hinzuzufügen.
Voraussetzungen
Wenn Sie mehrere Websites automatisch in Cloudflare aufnehmen möchten, brauchen Sie:
- ein bestehendes Konto bei Cloudflare (Registrieren / Anmelden)
- Grundkenntnisse der Befehlszeile
- Installiertes curl (bei macOS und Linux standardmäßig vorhanden)
- Ihren API-Schlüssel für Cloudflare
- eine Liste der Domains, die Sie hinzufügen möchten, jeweils in einer separaten Zeile (durch Zeilenumbruch getrennt) – z. B. „domains.txt“
Domains über die API aufnehmen
Cloudflare besitzt eine API mit vollem Funktionsumfang (siehe Dokumentation). Mit dieser API können automatisch neue Domains erstellt und DNS-Einträge, Page Rules und unsere umfangreichen Sicherheitseinstellungen konfiguriert werden. Wir werden diese API verwenden, um die gleichzeitige Aufnahme mehrerer Domains zu automatisieren.
Öffnen Sie Ihre Terminalanwendung (z. B. Terminal oder Terminal.app) und legen Sie Ihren API-Schlüssel und Ihre E-Mail-Adresse fest –
export [email protected]
export CF_API_KEY=abc123def456ghi789
Dann schreiben wir eine einfache for-Schleife, die jeden Domainnamen übernimmt
for domain in $(cat domains.txt); do \
curl -X POST -H "X-Auth-Key: $CF_API_KEY" -H "X-Auth-Email: $CF_API_EMAIL" \
-H "Content-Type: application/json" \
"https://api.cloudflare.com/client/v4/zones" \
--data '{"account": {"id": "id_of_that_account"}, "name":"'$domain'","jump_start":true}'; done
Mit dem Schlüssel „jump_start“ wird Cloudflare automatisch nach üblichen DNS-Einträgen suchen, z. B. „www“, „mail“, „blog“ und viele andere, damit Sie diese nicht manuell konfigurieren müssen (Sie sollten sich trotzdem vergewissern, dass wir sie alle gefunden haben).
Die API gibt eine Antwort zurück, in der die Nameserver enthalten sind, die Sie bei Ihrem Registrar ändern müssen (bei dem Sie die Domain registriert haben).
{
"result": {
"id": "abc123def456ghi789",
> Host: example.com
"status": "pending",
"paused": false,
"type": "full",
"development_mode": 0,
"name_servers": [
"chad.ns.cloudflare.com",
"lucy.ns.cloudflare.com"
],
"original_name_servers": [
"ns-cloud-e1.googledomains.com",
"ns-cloud-e2.googledomains.com",
"ns-cloud-e3.googledomains.com",
"ns-cloud-e4.googledomains.com"
],
"original_registrar": null,
"original_dnshost": null,
"modified_on": "2018-02-12T01:42:13.827149Z",
"created_on": "2018-02-12T01:42:13.827149Z",
"meta": {
"step": 4,
"wildcard_proxiable": false,
"custom_certificate_quota": 0,
"page_rule_quota": 3,
"phishing_detected": false,
"multiple_railguns_allowed": false
},
"owner": {
"id": "abc123def456ghi789",
"type": "user",
"email": "[email protected]"
},
"account": {
"id": "abc123def456ghi789",
"name": "[email protected]"
},
"permissions": [
"#access:edit",
"#access:read",
"#analytics:read",
"#app:edit",
"#billing:edit",
"#billing:read",
"#cache_purge:edit",
"#dns_records:edit",
"#dns_records:read",
"#lb:edit",
"#lb:read",
"#logs:read",
"#member:edit",
"#member:read",
"#organization:edit",
"#organization:read",
"#ssl:edit",
"#ssl:read",
"#subscription:edit",
"#subscription:read",
"#waf:edit",
"#waf:read",
"#worker:edit",
"#worker:read",
"#zone:edit",
"#zone:read",
"#zone_settings:edit",
"#zone_settings:read"
],
"plan": {
"id": "0feeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"name": "Free Website",
"price": 0,
"currency": "USD",
"frequency": "",
"is_subscribed": true,
"can_subscribe": false,
"legacy_id": "free",
"legacy_discount": false,
"externally_managed": false
}
},
"success": true,
"errors": [],
"messages": []
}
Beachten Sie den Schlüssel „name_servers“ in der Antwort. Dieses ist dasselbe eindeutige Paar für alle Websites, die Sie unter Ihrem Konto hinzufügen, z. B.
"name_servers": [ "chad.ns.cloudflare.com", "lucy.ns.cloudflare.com" ]
Kopieren Sie Ihre Werte (nicht die vorstehenden!) und aktualisieren Sie die Nameserver bei Ihrem Registrar.
Domains über flarectl (das Cloudflare-Befehlszeilentool) aufnehmen
Sie können Domains auch mit flarectl aufnehmen, dem offiziellen Befehlszeilentool von Cloudflare. Sie können ein vorbereitetes Paket für Ihr Betriebssystem (Windows, MacOS / Darwin, Linux) herunterladen und Domains erstellen, die dieses verwenden.
Sie müssen zuerst Ihre API-Anmeldeinformationen festlegen:
export [email protected]
export CF_API_KEY=abc123def456ghi789
... und dann den folgenden Befehl in flarectl ausführen:
for domain in $(cat domains.txt); do flarectl zone create --zone=$domain --jumpstart=false; done
Danach können Sie die Nameserver für jede Domain über „flarectl zone list“ erhalten:
for domain in $(cat domains.txt); do flarectl zone info --zone=$domain; done
Hilfe oder Tipps dazu bekommen Sie in der Cloudflare Community.
Häufige Probleme
Wenn bei diesem Prozess Fehler ausgegeben werden, ist die Domain möglicherweise nicht registriert (oder gerade erst registriert), eine Subdomain oder anderweitig ungültig. Die folgenden Artikel behandeln die häufigsten Fälle: