AWSRoute 53CloudFrontACMDNSCustom DomainSSL/TLS

Cómo usar en CloudFront un dominio registrado con Amazon Route 53

Sloth255
Sloth255
·9 min read·1,842 words

Introducción

Para usar en Amazon CloudFront un dominio registrado con Amazon Route 53, primero hay que comprobar la hosted zone en Route 53, después emitir un certificado SSL en AWS Certificate Manager (ACM) y, por último, configurar el dominio personalizado en CloudFront.
En este artículo partimos de una configuración en la que el origen del dominio principal y el del subdominio son distintos, y explicamos cómo asignar cada uno a una distribución de CloudFront diferente.

Requisitos previos

Este artículo asume lo siguiente.

  • El dominio principal y el subdominio usan orígenes distintos
  • La distribución de CloudFront del dominio principal y la del subdominio se operan por separado
  • La configuración básica de las distribuciones de CloudFront y de sus orígenes ya está completada
  • La hosted zone de Route 53 se administra dentro de la misma cuenta de AWS

Si ambos usan el mismo origen, también puedes optar por una configuración en la que varios nombres de dominio alternativos (CNAME) se definan en una sola distribución de CloudFront. Sin embargo, ese caso no se trata aquí.

Flujo general

  1. Comprar un dominio en Amazon Route 53
  2. Comprobar la hosted zone creada automáticamente en Amazon Route 53
  3. Emitir un certificado SSL en AWS Certificate Manager (ACM)
  4. Configurar el dominio personalizado en Amazon CloudFront
  5. Crear el registro del dominio principal en Amazon Route 53
  6. Crear el registro del subdominio en Amazon Route 53
  7. Verificar el funcionamiento

Relación entre ACM, Route 53 y CloudFront

En esta configuración, Amazon Route 53 administra el DNS, AWS Certificate Manager (ACM) emite el certificado para HTTPS y Amazon CloudFront actúa como destino de entrega tanto para el dominio principal como para el subdominio.

graph LR
  U[Navegador del usuario]
  R[Route 53 gestion DNS]
  CM[CloudFront para dominio raiz]
  CS[CloudFront para subdominio]
  OM[Origen S3 o servidor web]
  OS[Origen S3 o servidor web]
  A[ACM certificado SSL/TLS]

  U -->|Acceder a example.com| R
  U -->|Acceder a cdn.example.com| R
  R -->|Alias A / AAAA| CM
  R -->|Alias A / AAAA| CS
  CM -->|Entregar por HTTPS| U
  CS -->|Entregar por HTTPS| U
  A -->|Asociar certificado| CM
  A -->|Asociar certificado| CS
  CM -->|Obtener contenido| OM
  CS -->|Obtener contenido| OS

La clave es que los registros DNS de Amazon Route 53 hacen referencia a las distribuciones de CloudFront del dominio principal y del subdominio, y que, al configurar en cada una un certificado de ACM, puedes servir tu sitio por HTTPS con tu propio dominio.

1. Comprar un dominio en Amazon Route 53

Primero, abre Amazon Route 53 desde AWS Management Console y compra el dominio que quieras usar.

Pasos

  1. En el panel de Amazon Route 53, abre "Registered domains" o "Domain registration"
  2. Busca el nombre de dominio que quieres obtener (por ejemplo, example.com)

Pantalla de búsqueda de dominios de Route 53

  1. Si está disponible, añádelo al carrito y sigue el proceso de compra
  2. Introduce la información de contacto y el periodo de registro, y completa la compra
  3. Abre el correo de confirmación enviado a tu dirección registrada y haz clic en el enlace de verificación incluido en el mensaje
    • Ejemplo de asunto: Verify your email address.
  4. En la consola de Amazon Route 53, abre "Domains" → "Requests" y comprueba que el estado del dominio recién solicitado sea "Successful"

Cuando finaliza la compra, además del registro del dominio, Amazon Route 53 queda en condiciones de administrar sus servidores de nombres.

2. Comprobar la hosted zone creada automáticamente en Amazon Route 53

Cuando registras un dominio en Amazon Route 53, normalmente se crea automáticamente una hosted zone pública con el mismo nombre. Lo primero es comprobar ese estado.

Pasos

  1. En el panel de Amazon Route 53, abre "Hosted zones"
  2. Comprueba que exista una hosted zone con el mismo nombre que el dominio comprado (por ejemplo, example.com)
  3. Comprueba que en la hosted zone se hayan creado automáticamente los siguientes registros
NS
SOA

Si hace falta, revisa también los servidores de nombres que aparecen en el registro NS.

ns-xxx.awsdns-xx.com
ns-xxx.awsdns-xx.net
ns-xxx.awsdns-xx.org
ns-xxx.awsdns-xx.co.uk

3. Emitir un certificado SSL en AWS Certificate Manager (ACM)

Para que el sitio sea accesible por HTTPS, emite un certificado SSL en AWS Certificate Manager (ACM).

Pasos

  1. Cambia la región a us-east-1

Pantalla de selección de región en ACM

  1. En la consola de ACM, haz clic en "Request a certificate"

Pantalla para solicitar un certificado en ACM

  1. Selecciona "Request a public certificate"

Pantalla de selección de certificado público en ACM

  1. Introduce en el campo de nombre de dominio completo los dominios que quieras usar
    • Si vas a usar el dominio principal: example.com
    • Si vas a usar subdominios: *.example.com
    • Si quieres cubrir ambos con un solo certificado: añade tanto example.com como *.example.com
  2. Elige "DNS validation" como método de validación
  3. Haz clic en "Request"

Pantalla de envío de la solicitud de certificado en ACM

Completar la validación por DNS

  1. En la página de detalles del certificado, haz clic en "Create records in Route 53"
  2. Si la hosted zone de Route 53 se administra en la misma cuenta de AWS, puedes crear automáticamente los registros CNAME
  3. Si no aparece la opción de creación automática, agrega manualmente en Route 53 los registros CNAME que muestra ACM
  4. Unos minutos después, la validación se completa

Cuando termina la validación, el estado cambia a "Issued".

4. Configurar el dominio personalizado en Amazon CloudFront

Una vez emitido el certificado, añade el dominio personalizado a la distribución de CloudFront.

Pasos

  1. En la consola de CloudFront, selecciona la distribución del dominio principal
  2. Haz clic en "Edit"
  3. Añade el dominio que vas a usar en "Alternate domain name (CNAME)"
    • Añade example.com a la distribución del dominio principal
  4. En "Custom SSL certificate", selecciona el certificado que creaste antes
  5. Haz clic en "Save changes"
  6. A continuación, repite el mismo procedimiento en la distribución del subdominio
    • Añade cdn.example.com a la distribución del subdominio
    • Comprueba que el certificado usado incluya cdn.example.com o *.example.com
  7. Haz clic en "Save changes"

Espera entre unos minutos y unos 15 minutos hasta que se complete el despliegue de cada distribución.

5. Crear el registro del dominio principal en Amazon Route 53

Si también quieres que example.com apunte a CloudFront, crea registros alias A/AAAA.

Pasos

  1. En la pantalla de detalles de la hosted zone de Amazon Route 53, haz clic en "Create record"
  2. Introduce la siguiente información:
    • Nombre del registro: vacío (dominio raíz)
    • Tipo de registro: A - IPv4 address
    • Alias: On
    • Route traffic to:
      • Alias to CloudFront distribution
      • Selecciona la distribución de CloudFront del dominio principal
  3. Haz clic en "Create records"
  4. Del mismo modo, crea también un registro AAAA - IPv6 address

6. Crear el registro del subdominio en Amazon Route 53

Crea el registro que hace que el subdominio (por ejemplo, cdn.example.com) apunte a CloudFront.

Pasos

  1. En la pantalla de detalles de la hosted zone de Amazon Route 53, haz clic en "Create record"

Pantalla para crear un registro en Route 53

  1. Introduce la siguiente información:
    • Nombre del registro: subdominio (por ejemplo, cdn)
    • Tipo de registro: A - IPv4 address
    • Alias: On
    • Route traffic to:
      • Alias to CloudFront distribution
      • Selecciona la distribución de CloudFront del subdominio
  2. Haz clic en "Create records"

Pantalla después de crear un registro para CloudFront

  1. Crea también el siguiente registro del mismo modo.
    • Tipo de registro: AAAA - IPv6 address
    • El resto igual que en el paso 2

7. Verificación

Cuando toda la configuración esté lista, abre las siguientes URL en un navegador para comprobar el funcionamiento.

https://example.com
https://cdn.example.com

Si en cada caso se muestra el contenido del origen esperado, el enrutamiento básico funciona correctamente.

1. Comprobar DNS

Con los siguientes comandos puedes comprobar si el dominio principal y el subdominio apuntan a CloudFront.

nslookup example.com
nslookup cdn.example.com

No se devolverá el nombre de dominio de CloudFront en sí, pero podrás comprobar que la resolución de nombres funciona y que los registros alias de Route 53 están configurados correctamente.

2. Comprobar la respuesta HTTPS

A continuación, comprueba que HTTPS responde correctamente.

curl -I https://example.com
curl -I https://cdn.example.com

Como mínimo, revisa lo siguiente.

  • Se devuelve el estado HTTP esperado, como HTTP/1.1 200 OK o 301 Moved Permanently
  • Se incluye server: CloudFront
  • La redirección lleva al destino previsto

3. Comprobar el certificado y los nombres de dominio alternativos

Accede a cada URL desde el navegador y comprueba el sujeto del certificado y el icono del candado.

  • No aparece ningún error de certificado en example.com
  • No aparece ningún error de certificado en cdn.example.com
  • No hay redirecciones a un dominio no previsto

4. Comprobar la separación de orígenes

Si usas orígenes distintos para el dominio principal y el subdominio, comprueba también que cada uno esté apuntando a un destino distinto.

  • En https://example.com se muestra el contenido del origen del dominio principal
  • En https://cdn.example.com se muestra el contenido del origen del subdominio
  • Las actualizaciones de uno no se mezclan con el otro

Solución de problemas

Si no puedes acceder:

  1. Comprueba que el despliegue de CloudFront haya finalizado
  2. Comprueba que los registros alias A/AAAA de Route 53 estén configurados correctamente
  3. Comprueba que el dominio objetivo se haya añadido en "Alternate domain name (CNAME)" de CloudFront
  4. Comprueba que el certificado de ACM incluya example.com o cdn.example.com
  5. Comprueba que el estado del certificado de ACM sea "Issued"
  6. Comprueba que la gestión del encabezado Host o la configuración de redirección HTTPS en el origen no estén causando el problema
  7. Comprueba la propagación DNS (nslookup example.com / nslookup cdn.example.com)

Resumen

En este artículo se explicó cómo usar en Amazon CloudFront un dominio registrado con Amazon Route 53. Los puntos clave son los siguientes.

  • Un dominio registrado con Amazon Route 53 normalmente no requiere cambiar los servidores de nombres
  • Si el dominio admite protección de privacidad, puedes evitar que la información personal se publique en WHOIS
  • Primero se emite el certificado de ACM y después se configura el dominio personalizado en CloudFront
  • Si el dominio principal y el subdominio usan orígenes distintos, resulta más fácil organizarlos con distribuciones de CloudFront separadas
  • El dominio principal y el subdominio se vinculan a CloudFront con sus propios registros alias A/AAAA
  • El certificado de ACM debe crearse siempre en la región us-east-1

Con esta configuración, es posible lograr una entrega rápida de contenido y una administración flexible del DNS.

Enlaces de referencia