Tema
Proyecto: cliente completo
Es momento de juntar todo. En este proyecto final vas a configurar, de punta a punta, el dominio de un cliente real: compra, Cloudflare, sitio, SSL en Full (strict), correo profesional autenticado, Search Console, redirecciones y seguridad. Al final tendrás tres entregables que puedes reutilizar con cada cliente: una checklist imprimible, una plantilla de documentación para entregar y una guía para cobrar este servicio.
El cliente
Mi Tienda es una boutique de ropa en Querétaro. Quieren
mitienda.com, un sitio en WordPress (ya contrataron hosting cPanel, IP203.0.113.10), correo profesional para 3 personas (hola@,ventas@ylaura@, la dueña) en Google Workspace, aparecer en Google y que "no los hackeen". Además, ya compraronmitienda.mxy quieren que lleve al sitio principal.
Tu objetivo: que todo funcione, que sea seguro, que no paguen nada innecesario (como un certificado SSL) y que el cliente quede como dueño de todo, con documentación clara.
Concepto: el orden importa
txt
FASE 0 Accesos y propiedad ← quién es dueño de cada cuenta
FASE 1 Dominio ← comprar/verificar, renovación, bloqueo
FASE 2 Cloudflare ← zona, nameservers, Active
FASE 3 Sitio ← registros web, WordPress
FASE 4 SSL ← AutoSSL + Full (strict) + HTTPS
FASE 5 Correo ← Workspace, MX
FASE 6 Autenticación de correo ← SPF, DKIM, DMARC
FASE 7 Google ← Search Console (TXT)
FASE 8 Redirecciones ← www, http, mitienda.mx
FASE 9 Seguridad ← WAF, Turnstile, DNSSEC, 2FA
FASE 10 Pruebas y entrega ← checklist + documentaciónConfigurar el correo antes que Cloudflare, o el SSL antes que los registros, te obliga a hacer trabajo dos veces.
Fase 0: accesos y propiedad
La regla profesional: las cuentas son del cliente; tú eres invitado.
- El cliente crea (contigo en videollamada, si hace falta) sus cuentas con un correo que controle a largo plazo: registrador, Cloudflare, Google Workspace.
- Activa la verificación en dos pasos en todas.
- Te invita como miembro/administrador (Cloudflare: Manage Account → Members; Google Workspace: un usuario administrador o rol delegado).
- Las contraseñas se guardan en un gestor (Bitwarden, 1Password), nunca en un chat.
Error común: el dominio a nombre del programador
Es la causa número uno de pleitos. Si el día de mañana dejas de trabajar con el cliente (o te pasa algo), el negocio queda secuestrado. Aunque tú hagas la compra con tu tarjeta para agilizar, el titular y la cuenta deben ser del cliente. Ver el escenario 8 de Escenarios reales.
Fase 1: el dominio
- Si aún no existe, cómpralo donde la renovación sea transparente (Cloudflare Registrar a precio de costo, Namecheap, Porkbun;
.mxen Akky). Mira el precio de renovación, no el de promoción. Repasa Qué es un dominio. - Activa renovación automática con una tarjeta vigente del cliente y añade varios años si el presupuesto lo permite.
- Verifica que el bloqueo de transferencia esté activo.
- Datos de contacto: los del cliente (con privacidad WHOIS si está disponible).
- En el carrito quita los extras innecesarios: "SSL Premium", "protección de sitio", "correo básico", "constructor web". Ya sabes por qué.
Fase 2: Cloudflare
- Agrega
mitienda.com(plan Free) e importa registros. Revisa contra la zona del hosting. - Cambia los nameservers en el registrador a los asignados (
ana.ns.cloudflare.com,bob.ns.cloudflare.com). - Espera Active y verifica:
bash
dig NS mitienda.com @a.gtld-servers.netRepaso: Cloudflare desde cero.
Fase 3: el sitio
En cPanel el dominio ya está como principal. En Cloudflare:
txt
A @ 203.0.113.10 🟠
CNAME www mitienda.com 🟠
A cpanel 203.0.113.10 ⚪ (opcional, acceso cómodo al panel)
A ftp 203.0.113.10 ⚪ (solo si se usará FTP; mejor SFTP o el administrador de archivos)Instala WordPress (Softaculous o manual) con la dirección https://mitienda.com.
Fase 4: SSL en Full (strict)
- cPanel → SSL/TLS Status: AutoSSL válido para
mitienda.comywww.mitienda.com(ejecútalo si hace falta; si falla detrás del proxy, usa un Origin Certificate). - Cloudflare → SSL/TLS → Full (strict).
- Edge Certificates: Always Use HTTPS ✅, Automatic HTTPS Rewrites ✅, TLS mínimo 1.2.
.htaccesscon la redirección http→https a prueba de bucles.- HSTS: todavía no. Lo activas en la revisión de las 2–4 semanas.
Verifica ambos tramos:
bash
# Tramo 1 (lo que ve el visitante)
curl -sI https://mitienda.com | grep -iE "^HTTP|server"
# Tramo 2 (el origen, saltándose Cloudflare)
curl -sI --resolve mitienda.com:443:203.0.113.10 https://mitienda.com | head -1Repaso completo: SSL sin pagar.
Fase 5: correo profesional (Google Workspace)
- En Google Workspace agrega
mitienda.comy verifica con el TXTgoogle-site-verification=.... - Crea los usuarios (
laura@) y alias/grupos (hola@,ventas@como grupos que reenvían a quien corresponda: no pagas licencias por cada dirección). - En Cloudflare, elimina cualquier MX que apunte al hosting y crea
MX @ smtp.google.comprioridad 1. - En cPanel → Email Routing → Remote Mail Exchanger (para que el WordPress entregue a Google, no al buzón local).
- Configura WordPress para enviar por SMTP autenticado (plugin de SMTP con la cuenta de Workspace o un servicio transaccional), en lugar de la función
mail()del hosting.
¿Y los envíos masivos (Mailchimp, Brevo, SendGrid)?
Estos servicios normalmente no necesitan un include: en tu SPF, porque envían con su propio Return-Path (el dominio que evalúa SPF es el suyo). Lo que sí importa es configurar su DKIM con tu dominio (los CNAME o TXT que te piden), para que DMARC pase alineado. Más en DKIM y Correo con tu dominio.
Repaso: MX y cómo funciona el correo y Correo con tu dominio.
Fase 6: SPF, DKIM y DMARC
txt
TXT @ v=spf1 include:_spf.google.com ~all
TXT google._domainkey v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A...
TXT _dmarc v=DMARC1; p=none; rua=mailto:dmarc@mitienda.com; adkim=r; aspf=r- SPF: solo Google, porque el sitio envía por el SMTP de Google. Si el sitio enviara desde el hosting, agregarías
ip4:203.0.113.10. Un solo registro SPF. - DKIM: consola de administración → Gmail → Autenticar correo → generar (2048) → publicar TXT → Iniciar autenticación.
- DMARC con plan de endurecimiento:
| Semana | Política | Qué haces |
|---|---|---|
| 0–2 | p=none | Recibir reportes; confirmar que todo envío legítimo pasa SPF/DKIM. |
| 3–4 | p=quarantine; pct=25 → pct=100 | Lo que falle va a spam. |
| 5+ | p=reject | Nadie puede suplantar @mitienda.com. |
Usa el generador SPF/DMARC y repasa SPF, DKIM y DMARC.
Fase 7: Google Search Console
Usa la propiedad de tipo Dominio (cubre http, https, www y todos los subdominios):
- Search Console → Agregar propiedad → Dominio →
mitienda.com. - Google muestra un TXT
google-site-verification=xyz.... Créalo en Cloudflare en@. (Si Google ofrece "verificar automáticamente con Cloudflare", también sirve; el resultado es el mismo TXT.) - Pulsa Verificar. Si falla, espera unos minutos y comprueba con
dig TXT mitienda.com +short. - Envía el sitemap:
https://mitienda.com/wp-sitemap.xml(o el de tu plugin SEO).
Puede haber varios TXT en @
SPF, verificación de Workspace y verificación de Search Console pueden convivir como TXT separados en @. Lo único que no puede repetirse es el SPF (v=spf1). Más en TXT y verificaciones.
Fase 8: redirecciones
- www → raíz: Redirect Rule en Cloudflare (301, conservar query). Asegúrate de que WordPress use
https://mitienda.comcomo dirección y de no tener la regla opuesta en.htaccess. - http → https: Always Use HTTPS +
.htaccess. - mitienda.mx → mitienda.com: zona propia en Cloudflare,
AAAA @ 100::yAAAA www 100::en naranja, Redirect Rule 301, y protección anti-suplantación (MX nulo,v=spf1 -all, DMARCp=reject).
Comprueba que cada variante llegue con un solo salto al destino final:
bash
for u in http://mitienda.com http://www.mitienda.com https://www.mitienda.com http://mitienda.mx https://www.mitienda.mx; do
echo "== $u"; curl -sIL "$u" | grep -iE "^HTTP|^location"
doneFase 9: seguridad
| Medida | Dónde | Configuración |
|---|---|---|
| WAF administrado | Security → WAF | Activo (por defecto) |
| Proteger login | Custom rule | /wp-login.php fuera de MX → Managed Challenge |
| Bloquear archivos sensibles | Custom rule | rutas con /.env, /.git, xmlrpc.php → Block |
| Fuerza bruta | Rate limiting | POST /wp-login.php, 5 en 10 s por IP |
| Formularios | Turnstile | Widget en contacto + validación en servidor |
| Bots | Bot Fight Mode | Activo (si no rompe integraciones) |
| IP real | Hosting | CF-Connecting-IP (mod_remoteip o plugin) |
| DNSSEC | DNS → Settings | Activar + DS en el registrador |
| Cuentas | Todas | 2FA, contraseñas en gestor, mínimo privilegio |
| CAA (opcional) | DNS | Si lo agregas, autoriza la CA de AutoSSL (letsencrypt.org o sectigo.com); Cloudflare añade solo las suyas |
Repaso: Cloudflare a fondo.
La zona final
txt
mitienda.com — Cloudflare (ana.ns.cloudflare.com / bob.ns.cloudflare.com)
Tipo Nombre Contenido Proxy Prio
──────────────────────────────────────────────────────────────────────────────────────────────
A @ 203.0.113.10 🟠
CNAME www mitienda.com 🟠
A cpanel 203.0.113.10 ⚪
MX @ smtp.google.com — 1
TXT @ v=spf1 include:_spf.google.com ~all —
TXT @ google-site-verification=WORKSPACE_abc123... —
TXT @ google-site-verification=SEARCHCONSOLE_xyz789... —
TXT google._domainkey v=DKIM1; k=rsa; p=MIIBIjANBgkqh... —
TXT _dmarc v=DMARC1; p=none; rua=mailto:dmarc@mitienda.com —
DNSSEC: activo (DS publicado en el registrador)
SSL/TLS: Full (strict) · Always Use HTTPS · TLS mín. 1.2 · HSTS pendiente (semana 4)Checklist imprimible
Imprime esta lista (o cópiala a tu gestor de tareas) y márcala con cada cliente.
txt
CLIENTE: ______________________ DOMINIO: ______________________ FECHA: ___/___/______
FASE 0 · ACCESOS
[ ] Cuentas del registrador, Cloudflare y correo a nombre del cliente
[ ] 2FA activo en todas las cuentas
[ ] Yo tengo acceso como miembro/invitado (no con la contraseña del cliente)
[ ] Contraseñas guardadas en gestor compartido
FASE 1 · DOMINIO
[ ] Titular y contactos = cliente [ ] Renovación automática activa
[ ] Bloqueo de transferencia activo [ ] Fecha de vencimiento anotada: ___/___/______
[ ] Sin extras innecesarios (SSL de pago, etc.)
FASE 2 · CLOUDFLARE
[ ] Zona importada y comparada con la original (MX, TXT, DKIM, SRV, subdominios)
[ ] Solo los 2 nameservers de Cloudflare en el registrador
[ ] Estado: Active
FASE 3-4 · SITIO Y SSL
[ ] @ y www en naranja; mail/cpanel/ftp en gris
[ ] Certificado válido en el origen (AutoSSL / Origin Certificate)
[ ] SSL/TLS en Full (strict)
[ ] Always Use HTTPS + Automatic HTTPS Rewrites + TLS mín. 1.2
[ ] Sin contenido mixto (consola del navegador limpia)
[ ] HSTS programado para la revisión de la semana 4
FASE 5-6 · CORREO
[ ] MX correctos (sin MX viejos) [ ] Email Routing correcto en cPanel
[ ] Un solo SPF, sin "+a" si @ está en naranja
[ ] DKIM publicado y activado en el proveedor
[ ] DMARC p=none con rua → plan a quarantine/reject
[ ] Prueba: enviar y recibir desde/hacia Gmail y Outlook
[ ] mail-tester.com: ___/10 "Mostrar original": SPF PASS · DKIM PASS · DMARC PASS
[ ] Formulario del sitio entrega al buzón correcto
FASE 7-8 · GOOGLE Y REDIRECCIONES
[ ] Search Console (propiedad Dominio) verificada + sitemap enviado
[ ] www → raíz (301, un solo salto) [ ] http → https
[ ] Dominios secundarios → principal (301) con MX nulo, SPF -all, DMARC reject
FASE 9 · SEGURIDAD
[ ] WAF administrado + reglas propias [ ] Rate limiting en login
[ ] Turnstile en formularios [ ] Bot Fight Mode revisado
[ ] IP real del visitante restaurada [ ] DNSSEC activo (DS en registrador)
FASE 10 · ENTREGA
[ ] SSL Labs: calificación ___ [ ] whatsmydns: propagado
[ ] Documento de entrega enviado al cliente
[ ] Recordatorio de revisión en 2-4 semanas (DMARC, HSTS)Plantilla de documentación para el cliente
Entrégala en PDF o en un documento compartido. Nunca incluyas contraseñas: solo dónde están y quién tiene acceso.
txt
═══════════════════════════════════════════════════════════════════
DOCUMENTACIÓN DE DOMINIO Y CORREO — Mi Tienda
Preparado por: [Tu nombre] · [tu correo] · Fecha: 02/11/2026
═══════════════════════════════════════════════════════════════════
1. RESUMEN
Dominio principal: mitienda.com Secundario: mitienda.mx (redirige)
Sitio web: WordPress en hosting [Proveedor], IP 203.0.113.10
Correo: Google Workspace (3 usuarios: laura@, grupos hola@ y ventas@)
DNS / CDN / Seguridad: Cloudflare (plan Free)
Certificado SSL: GRATUITO (Cloudflare Universal SSL + AutoSSL del hosting).
No es necesario comprar certificados.
2. CUENTAS (todas a nombre de Mi Tienda, con verificación en 2 pasos)
| Servicio | Cuenta / correo dueño | Quién más tiene acceso | Contraseña en |
| Registrador | laura@mitienda.com | [Tu nombre] (invitado) | Bitwarden |
| Cloudflare | laura@mitienda.com | [Tu nombre] (miembro) | Bitwarden |
| Google Workspace | laura@mitienda.com | [Tu nombre] (admin) | Bitwarden |
| Hosting / cPanel | laura@mitienda.com | [Tu nombre] | Bitwarden |
3. FECHAS Y PAGOS
| Concepto | Proveedor | Vence / se cobra | Costo aprox. | Renovación auto |
| mitienda.com | [Registrador]| __/__/____ | $____ | Sí |
| mitienda.mx | Akky | __/__/____ | $____ | Sí |
| Hosting | [Proveedor] | __/__/____ | $____ | Sí |
| Google Workspace | Google | mensual | $____ x 1 | Sí |
4. REGISTROS DNS (Cloudflare)
[pegar la tabla de "La zona final"]
5. CONFIGURACIÓN DE SEGURIDAD
SSL/TLS: Full (strict) · Always Use HTTPS · TLS 1.2+
WAF: reglas administradas + login protegido + límite de intentos
DNSSEC: activo · Turnstile en el formulario de contacto
6. QUÉ HACER SI...
- El sitio no carga: revisar status.cloudflare.com y el estado del hosting; contactar a [Tu nombre].
- No llegan correos: revisar spam y status de Google Workspace; NO tocar los registros MX/TXT.
- Alguien ofrece "renovar su certificado SSL": NO es necesario, el certificado es gratuito y automático.
- Llega un aviso de vencimiento del dominio: verificar que la tarjeta esté vigente.
7. PENDIENTES PROGRAMADOS
- Semana 2-4: endurecer DMARC a quarantine y luego reject.
- Semana 4: activar HSTS (1 mes, luego 6-12 meses).Cuánto cobrar por este servicio
Este trabajo tiene mucho valor para el cliente: correo que no cae en spam, sitio seguro, cero pagos innecesarios y un negocio que no depende de nadie. Usa el método de Cómo cotizar (tarifa por hora × horas estimadas, con margen para imprevistos). Como referencia de horas:
| Tarea | Horas aprox. |
|---|---|
| Inventario, accesos, reunión con el cliente | 1 – 1.5 |
| Dominio + Cloudflare + nameservers | 0.5 – 1 |
| SSL Full (strict), redirecciones, contenido mixto | 0.5 – 1.5 |
| Correo profesional (alta, usuarios, MX, migración de buzones si existe) | 1 – 3 |
| SPF, DKIM, DMARC + pruebas | 0.5 – 1 |
| Search Console, dominios secundarios, seguridad | 1 – 1.5 |
| Documentación y entrega | 1 |
| Total | 5.5 – 10.5 h |
Paquetes orientativos (México, valores de referencia; ajústalos a tu mercado y experiencia):
| Paquete | Incluye | Rango orientativo (MXN) |
|---|---|---|
| Básico | Dominio + Cloudflare + SSL Full (strict) + redirecciones | $1,500 – $3,000 |
| Profesional | Básico + correo profesional + SPF/DKIM/DMARC + Search Console + documentación | $3,500 – $7,000 |
| Migración | Cambio de hosting o de proveedor de correo sin caída, con migración de buzones | $4,000 – $10,000 |
| Mantenimiento mensual | Monitoreo, renovaciones, reportes DMARC, ajustes de seguridad, soporte | $500 – $1,500 / mes |
Vende el ahorro
Si el cliente pagaba un certificado de $89 USD al año y un "correo básico" del registrador que caía en spam, enséñale la cuenta: tu servicio se paga solo en uno o dos años y además funciona mejor. No cobres "por mover unos registros": cobras por el conocimiento de no romper nada.
No revendas lo gratuito
Cobrar por tu trabajo de configurar el SSL está bien. Cobrar al cliente un "certificado SSL anual" que en realidad es el gratuito de Cloudflare o AutoSSL no es ético. Sé transparente: tu valor es el servicio, no el certificado.
Ejercicios
- Haz el proyecto completo con un dominio propio (uno barato de práctica sirve) y llena la checklist. Anota cuánto tardaste en cada fase.
- Variante: el cliente quiere el correo en el hosting (cPanel) en lugar de Google Workspace. Escribe la tabla final de registros que cambia.
- A las 3 semanas, los reportes DMARC muestran que una herramienta de facturación electrónica envía correos "de"
facturas@mitienda.comdesde los servidores defacturador.exampley fallan SPF. ¿Qué haces antes de pasar ap=reject? - Prepara una cotización con el paquete Profesional para Mi Tienda, incluyendo el mantenimiento mensual opcional.
Ver solución
- Práctica libre. Lo normal la primera vez: 8–12 horas; con práctica baja a 3–5 horas. Esa diferencia es tu ganancia como profesional.
- Cambian el correo y el SPF/DKIM:
txt
A mail 203.0.113.10 ⚪
A webmail 203.0.113.10 ⚪
MX @ mail.mitienda.com 0
TXT @ v=spf1 ip4:203.0.113.10 mx ~all
TXT default._domainkey v=DKIM1; k=rsa; p=... (de cPanel → Email Deliverability)
TXT _dmarc v=DMARC1; p=none; rua=mailto:dmarc@mitienda.comSe eliminan el MX de Google y google._domainkey; en cPanel, Email Routing → Local Mail Exchanger. 3. Agregar el include: que documente el proveedor de facturación al SPF (sin pasar de 10 consultas DNS) y, si lo permite, configurar DKIM con el dominio mitienda.com en esa herramienta. Esperar a que los reportes muestren PASS alineado y solo entonces endurecer DMARC. 4. Ejemplo:
txt
COTIZACIÓN — Configuración profesional de dominio y correo · Mi Tienda
Incluye: Cloudflare (DNS, CDN, seguridad), SSL gratuito en Full (strict),
correo profesional Google Workspace (3 direcciones), SPF/DKIM/DMARC,
Search Console, redirección de mitienda.mx, documentación de entrega.
Inversión: $5,500 MXN + IVA (50% anticipo, 50% a la entrega)
No incluye: licencias de Google Workspace ni renovación de dominios (las paga el cliente directamente).
Opcional: mantenimiento mensual $900 MXN (monitoreo, renovaciones, DMARC, soporte).
Tiempo de entrega: 3 días hábiles tras recibir accesos.Resumen
- Orden: accesos → dominio → Cloudflare → sitio → SSL → correo → SPF/DKIM/DMARC → Google → redirecciones → seguridad → entrega.
- Todas las cuentas son del cliente, con 2FA; tú eres invitado.
- SSL gratis en Full (strict); nada de certificados de pago.
- Correo autenticado con DMARC que se endurece por etapas; Search Console por TXT.
- Entrega siempre una checklist marcada y una documentación sin contraseñas.
- Cobra por el conocimiento y el ahorro, con paquetes claros y mantenimiento opcional (Cómo cotizar).
- ¡Terminaste el curso! Ya puedes configurar con confianza el dominio de cualquier cliente.