Aprende cómo agregar varios sitios (más de 10) a la vez a Cloudflare con la API de Cloudflare o la herramienta CLI de Cloudflare, flarectl.
Descripción
Si deseas añadir varios sitios (más de 10) a Cloudflare de una sola vez, puedes hacerlo mediante la API de Cloudflare. La incorporación de varios sitios puede ser útil si se cumplen las siguientes condiciones:
- Tienes varios dominios que se asignan a un único dominio canónico, p. ej., dominios de diferentes países (.com.au, .co.uk, etc.) que deseas proteger con Cloudflare.
- Es una agencia o un consultor de TI y gestiona varios dominios en nombre de tus clientes (nota: deberías considerar nuestro Programa de socios).
- Estás trasladando un conjunto de sitios existentes a Cloudflare.
Con la API, podrás añadir varios sitios de forma rápida y eficiente, especialmente si ya conoces cómo cambiar tus servidores de nombres o añadir un registro DNS.
Requisitos previos
Para agregar varios sitios en Cloudflare mediante la automatización
- Una cuenta existente en Cloudflare (regístrate/inicia sesión)
- Conocimiento básico de la línea de comandos
- curl instalada (de forma predeterminada en macOS y Linux)
- Tu clave de API de Cloudflare a mano
- Una lista de dominios que desees añadir, cada uno en una línea separada (nueva línea separada), p. ej., “domains.txt”
Cómo incorporar dominios mediante la API
Cloudflare dispone de una API con todas las funciones (documentación) que te permiten automatizar la creación de nuevos dominios, además de configurar registros DNS, Page Rules y las distintas configuraciones de seguridad. Utilizaremos esta API para automatizar la incorporación de varios dominios de una sola vez.
Abre tu aplicación de terminal (p. ej., Terminal o Terminal.app) y configura tu clave de API y correo electrónico:
exportar [email protected]
exportar CF_API_KEY=abc123def456ghi789
A continuación, escribiremos un bucle For de muestra que utiliza el nombre de cada dominio
para dominio en $(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
La clave “jump_start” intentará que Cloudflare escanee automáticamente registros DNS frecuentes, como “www”, “mail”, “blog” y muchos otros, por lo que no debes configurarlos manualmente (deberías confirmar que los hemos encontrado todos).
La API devolverá una respuesta, incluidos los servidores de nombres que deberás cambiar en el registrar (en el que ha registrado el dominio).
{
"result": {
"id": "abc123def456ghi789",
"name": "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": []
}
Ten en cuenta la clave “name_servers” en la respuesta. Será el mismo par único para todos los sitios que añadas con tu cuenta, p. ej.:
"name_servers": [ "chad.ns.cloudflare.com", "lucy.ns.cloudflare.com" ]
Copia los valores (¡no los de arriba!) y actualiza los servidores de nombres en el registrador.
Cómo agregar dominios mediante flarectl (herramienta CLI de Cloudflare)
También puedes añadir dominios con flarectl, la CLI oficial de Cloudflare. Puedes descargar un paquete previamente generado para el sistema operativo (Windows, macOS/Darwin, Linux) y crear dominios con este.
Deberás configurar tus credenciales de API primero:
exportar [email protected]
exportar CF_API_KEY=abc123def456ghi789
... y, a continaución, ejecutar el siguiente comando en flarectl:
for domain in $(cat domains.txt); do flarectl zone create --zone=$domain --jumpstart=false; done
A continuación, puedes obtener los mismos servidores de nombres para cada dominio mediante “flarectl zone list”:
for domain in $(cat domains.txt); do flarectl zone info --zone=$domain; done
Busca ayuda o consejos dentro de la Comunidad Cloudflare.
Problemas frecuentes
En el caso de que se hayan mostrado errores en este proceso, es posible que no se haya registrado el dominio (o que se acabe de registrar), que sea un subdominio o que no sea válido. Los siguientes artículos abarcan la mayoría de los casos frecuentes: