AWSRoute 53CloudFrontACMDNSCustom DomainSSL/TLS

Como usar no CloudFront um domínio registrado no Amazon Route 53

Sloth255
Sloth255
·9 min read·1,864 words

Introdução

Para usar no Amazon CloudFront um domínio registrado no Amazon Route 53, primeiro você precisa verificar a hosted zone no lado do Route 53, depois emitir um certificado SSL no AWS Certificate Manager (ACM) e, por fim, configurar o domínio personalizado no CloudFront.
Neste artigo, partimos de uma configuração em que a origem do domínio principal e a origem do subdomínio são diferentes, e explicamos como atribuir cada uma delas a uma distribuição separada do CloudFront.

Pré-requisitos

Este artigo considera os seguintes pré-requisitos.

  • O domínio principal e o subdomínio usam origens diferentes
  • A distribuição do CloudFront para o domínio principal e a do subdomínio são operadas separadamente
  • A configuração básica das distribuições do CloudFront e de suas origens já foi concluída
  • A hosted zone do Route 53 é gerenciada na mesma conta AWS

Se ambos usarem a mesma origem, você também pode optar por uma configuração em que vários nomes de domínio alternativos (CNAMEs) sejam definidos em uma única distribuição do CloudFront. No entanto, esse caso não é tratado aqui.

Fluxo geral

  1. Comprar um domínio no Amazon Route 53
  2. Verificar a hosted zone criada automaticamente no Amazon Route 53
  3. Emitir um certificado SSL no AWS Certificate Manager (ACM)
  4. Configurar o domínio personalizado no Amazon CloudFront
  5. Criar o registro do domínio principal no Amazon Route 53
  6. Criar o registro do subdomínio no Amazon Route 53
  7. Verificar o funcionamento

Relação entre ACM, Route 53 e CloudFront

Nesta configuração, o Amazon Route 53 gerencia o DNS, o AWS Certificate Manager (ACM) emite o certificado para HTTPS e o Amazon CloudFront atua como destino de entrega para o domínio principal e o subdomínio.

graph LR
  U[Navegador do usuario]
  R[Route 53 gerenciamento DNS]
  CM[CloudFront para dominio raiz]
  CS[CloudFront para subdominio]
  OM[Origem S3 ou servidor web]
  OS[Origem S3 ou servidor web]
  A[ACM certificado SSL/TLS]

  U -->|Acessar example.com| R
  U -->|Acessar 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 -->|Associar certificado| CM
  A -->|Associar certificado| CS
  CM -->|Obter conteudo| OM
  CS -->|Obter conteudo| OS

O ponto principal é que os registros DNS no Amazon Route 53 referenciam as distribuições do CloudFront para o domínio principal e o subdomínio e, ao configurar um certificado do ACM em cada uma delas, você consegue entregar conteúdo por HTTPS com seu próprio domínio.

1. Comprar um domínio no Amazon Route 53

Primeiro, abra o Amazon Route 53 no AWS Management Console e compre o domínio que deseja usar.

Etapas

  1. No painel do Amazon Route 53, abra "Registered domains" ou "Domain registration"
  2. Pesquise o nome de domínio que deseja obter (exemplo: example.com)

Tela de pesquisa de domínio do Route 53

  1. Se estiver disponível, adicione ao carrinho e prossiga com a compra
  2. Informe os dados de contato e o período de registro e conclua a compra
  3. Abra o e-mail de confirmação enviado ao endereço cadastrado e clique no link de verificação no corpo da mensagem
    • Exemplo de assunto: Verify your email address.
  4. No console do Amazon Route 53, abra "Domains" → "Requests" e confirme que o status do domínio recém-solicitado está como "Successful"

Quando a compra for concluída, além do registro do domínio, o Amazon Route 53 também ficará apto a gerenciar os name servers desse domínio.

2. Verificar a hosted zone criada automaticamente no Amazon Route 53

Quando você registra um domínio no Amazon Route 53, normalmente é criada automaticamente uma hosted zone pública com o mesmo nome. Primeiro, confirme esse estado.

Etapas

  1. No painel do Amazon Route 53, abra "Hosted zones"
  2. Confirme que existe uma hosted zone com o mesmo nome do domínio comprado (exemplo: example.com)
  3. Confirme que os seguintes registros foram criados automaticamente na hosted zone
NS
SOA

Se necessário, verifique também os name servers exibidos no 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 um certificado SSL no AWS Certificate Manager (ACM)

Para permitir acesso por HTTPS, emita um certificado SSL no AWS Certificate Manager (ACM).

Etapas

  1. Mude a região para us-east-1

Tela de seleção de região do ACM

  1. No console do ACM, clique em "Request a certificate"

Tela para solicitar um certificado no ACM

  1. Selecione "Request a public certificate"

Tela de seleção de certificado público do ACM

  1. No campo de nome de domínio totalmente qualificado, informe os domínios que deseja usar
    • Se for usar o domínio principal: example.com
    • Se for usar subdomínios: *.example.com
    • Se quiser cobrir ambos com um único certificado: adicione example.com e *.example.com
  2. Escolha "DNS validation" como método de validação
  3. Clique em "Request"

Tela de envio da solicitação de certificado no ACM

Concluir a validação por DNS

  1. Na página de detalhes do certificado, clique em "Create records in Route 53"
  2. Se a hosted zone do Route 53 for gerenciada na mesma conta AWS, você poderá criar os registros CNAME automaticamente
  3. Se a opção de criação automática não aparecer, adicione manualmente no Route 53 os registros CNAME exibidos pelo ACM
  4. Alguns minutos depois, a validação será concluída

Quando a validação terminar, o status passará para "Issued".

4. Configurar o domínio personalizado no Amazon CloudFront

Depois que o certificado for emitido, adicione o domínio personalizado à distribuição do CloudFront.

Etapas

  1. No console do CloudFront, selecione a distribuição do domínio principal
  2. Clique em "Edit"
  3. Adicione o domínio que será usado em "Alternate domain name (CNAME)"
    • Adicione example.com à distribuição do domínio principal
  4. Em "Custom SSL certificate", selecione o certificado criado anteriormente
  5. Clique em "Save changes"
  6. Em seguida, repita o mesmo procedimento na distribuição do subdomínio
    • Adicione cdn.example.com à distribuição do subdomínio
    • Confirme que o certificado utilizado inclui cdn.example.com ou *.example.com
  7. Clique em "Save changes"

Aguarde de alguns minutos até cerca de 15 minutos para que a implantação seja concluída em cada distribuição.

5. Criar o registro do domínio principal no Amazon Route 53

Se você também quiser que example.com aponte para o CloudFront, crie registros de alias A/AAAA.

Etapas

  1. Na página de detalhes da hosted zone no Amazon Route 53, clique em "Create record"
  2. Preencha as seguintes informações:
    • Nome do registro: deixe em branco (domínio raiz)
    • Tipo de registro: A - IPv4 address
    • Alias: On
    • Route traffic to:
      • Alias to CloudFront distribution
      • Selecione a distribuição do CloudFront para o domínio principal
  3. Clique em "Create records"
  4. Da mesma forma, crie também um registro AAAA - IPv6 address

6. Criar o registro do subdomínio no Amazon Route 53

Crie o registro que aponta o subdomínio (exemplo: cdn.example.com) para o CloudFront.

Etapas

  1. Na página de detalhes da hosted zone no Amazon Route 53, clique em "Create record"

Tela para criar um registro no Route 53

  1. Preencha as seguintes informações:
    • Nome do registro: subdomínio (exemplo: cdn)
    • Tipo de registro: A - IPv4 address
    • Alias: On
    • Route traffic to:
      • Alias to CloudFront distribution
      • Selecione a distribuição do CloudFront para o subdomínio
  2. Clique em "Create records"

Tela após criar um registro para o CloudFront

  1. Crie também o registro abaixo da mesma forma.
    • Tipo de registro: AAAA - IPv6 address
    • O restante é igual ao item 2

7. Verificação

Depois que toda a configuração estiver concluída, acesse as URLs abaixo no navegador para verificar o funcionamento.

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

Se o conteúdo da origem esperada aparecer em cada caso, o roteamento básico está funcionando.

1. Verificar o DNS

Com os comandos abaixo, você pode confirmar se o domínio principal e o subdomínio apontam para o CloudFront.

nslookup example.com
nslookup cdn.example.com

O nome de domínio do próprio CloudFront não será retornado, mas você pode confirmar que a resolução de nomes funciona e que os registros de alias no Route 53 estão configurados corretamente.

2. Verificar a resposta HTTPS

Em seguida, confirme se o HTTPS responde corretamente.

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

Verifique pelo menos os pontos abaixo.

  • Retorna o status HTTP esperado, como HTTP/1.1 200 OK ou 301 Moved Permanently
  • Inclui server: CloudFront
  • O redirecionamento vai para o destino pretendido

3. Verificar o certificado e os nomes de domínio alternativos

Acesse cada URL no navegador e confirme o titular do certificado e o ícone de cadeado.

  • Não há erro de certificado em example.com
  • Não há erro de certificado em cdn.example.com
  • Não ocorre redirecionamento para um domínio inesperado

4. Verificar a separação das origens

Se você estiver usando origens separadas para o domínio principal e o subdomínio, confirme também que cada um referencia um destino diferente.

  • Em https://example.com, é exibido o conteúdo da origem do domínio principal
  • Em https://cdn.example.com, é exibido o conteúdo da origem do subdomínio
  • Atualizações de um lado não se misturam com o outro

Solução de problemas

Se não conseguir acessar:

  1. Verifique se a implantação do CloudFront foi concluída
  2. Verifique se os registros de alias A/AAAA no Route 53 estão configurados corretamente
  3. Verifique se o domínio de destino foi adicionado em "Alternate domain name (CNAME)" no CloudFront
  4. Verifique se o certificado do ACM inclui example.com ou cdn.example.com
  5. Verifique se o status do certificado do ACM está como "Issued"
  6. Verifique se o cabeçalho Host ou as configurações de redirecionamento HTTPS na origem não estão causando o problema
  7. Verifique a propagação do DNS (nslookup example.com / nslookup cdn.example.com)

Resumo

Este artigo explicou como usar no Amazon CloudFront um domínio registrado no Amazon Route 53. Os pontos principais são os seguintes.

  • Um domínio registrado no Amazon Route 53 normalmente não exige alteração de name servers
  • Se o domínio oferecer proteção de privacidade, você pode evitar a exposição de informações pessoais no WHOIS
  • Emita primeiro o certificado do ACM e depois configure o domínio personalizado no CloudFront
  • Se o domínio principal e o subdomínio usarem origens diferentes, fica mais fácil organizar tudo com distribuições separadas do CloudFront
  • O domínio principal e o subdomínio devem ser vinculados ao CloudFront por meio de seus próprios registros de alias A/AAAA
  • O certificado do ACM deve ser criado obrigatoriamente na região us-east-1

Com essa configuração, você obtém entrega rápida de conteúdo e gerenciamento flexível de DNS.