Como mapear domínios personalizados

É possível usar um domínio personalizado em vez do endereço padrão fornecido pelo App Engine para o aplicativo.

Para usar um domínio personalizado, mapeie-o para o aplicativo e atualize os registros DNS. É possível mapear um domínio sem "www", como example.com, ou um subdomínio, como subdomain.example.com. Você também pode usar caracteres curinga para mapear subdomínios.

Por padrão, quando você mapeia o domínio para um app, o App Engine emite um certificado gerenciado para SSL em conexões HTTPS. Para saber mais informações sobre o uso do SSL com domínios personalizados e como usar seus próprios certificados SSL, acesse Como proteger domínios personalizados com SSL.

O uso de domínios personalizados pode adicionar uma latência perceptível às respostas que o App Engine envia aos usuários do aplicativo em algumas regiões. Essas regiões são:

  • us-west2
  • us-east4
  • northamerica-northeast1
  • southamerica-east1
  • europe-west2
  • europe-west3
  • asia-south1
  • asia-northeast1
  • australia-southeast1

Os domínios personalizados do App Engine usam um pool de endereços IP compartilhados para todos os aplicativos. Para usar um endereço IP que mapeie somente para seu domínio, configure um balanceador de carga com o App Engine. Isso pode reduzir um problema de frente de domínio em que uma solicitação para o aplicativo A no certificado SNI pode ser encaminhada para o aplicativo B no cabeçalho Host HTTP.

Antes de começar

  • Se você não tiver um domínio, compre um. É possível usar qualquer registrador de domínios.

  • Para adicionar ou editar um mapeamento de domínio personalizado, sua conta precisa ter o papel de administrador do App Engine (roles/appengine.appAdmin) ou um papel personalizado que contenha a permissão appengine.applications.get.

  • Se você usar o Cloud Load Balancing e os NEGs sem servidor para rotear o tráfego para seu aplicativo do App Engine, recomendamos mapear o domínio personalizado para o balanceador de carga, em vez de diretamente para seu aplicativo, e usar certificados SSL criados para o balanceador de carga. Isso elimina a necessidade de gerenciar certificados SSL separados para cada aplicativo sem servidor. Além disso, com o Cloud Load Balancing, é possível definir políticas SSL que controlam os recursos SSL que seu balanceador de carga negocia com os clientes.

    Para mais informações, consulte as seguintes páginas:

    Observe a limitação a seguir:

    • Recomendamos usar controles de entrada para que o aplicativo receba apenas solicitações enviadas do balanceador de carga (e da VPC, se você usá-la). Caso contrário, os usuários poderão usar o URL do App Engine do aplicativo para ignorar o balanceador de carga, as políticas de segurança do Google Cloud Armor, os certificados SSL e as chaves privadas transmitidas pelo balanceador de carga.

Como mapear um domínio personalizado para o aplicativo

  1. No console do Google Cloud, acesse a guia Configurações do aplicativo da página Configurações do App Engine.

    Acesse as configurações do aplicativo

    Se você não precisar modificar o referenciador padrão da API Google Accounts, passe para a próxima etapa.

    Se você precisar ativar a autenticação do Google Workspace no domínio personalizado, clique em Editar para modificar o referenciador da API Google Accounts. No menu suspenso do Google Authentication, selecione Domínio do Google Workspace e adicione o domínio, como example.com, no campo vazio.

  2. No console do Google Cloud, acesse a guia Domínios personalizados da página Configurações do App Engine.

    Acesse "Domínios personalizados"

  3. Clique em Adicionar um domínio personalizado.

  4. Se o domínio já tiver sido verificado, ele aparecerá na seção Selecione o domínio que você quer usar. Selecione o domínio no menu suspenso e clique em Continuar.

    Se você ainda não verificou o domínio, faça o seguinte:

    1. Selecione Verificar um novo domínio no menu suspenso.
    2. Digite o nome de domínio sem "www" (como "example.com") e clique em Verificar.

      Mesmo que você queira apenas mapear um subdomínio, como "www.subdomain.example.com", insira o nome do domínio sem "www" para verificar a propriedade.

      Os nomes de domínio precisam ter menos de 64 bytes.

    3. Insira as informações na janela do Search Console exibida. Se você precisar de ajuda para usar o Search Console, consulte este link.

    4. Depois de concluir as etapas no Search Console, retorne à página Adicionar um novo domínio personalizado no console do Google Cloud.

  5. Na seção Aponte seu domínio para [project-ID], especifique o domínio e os subdomínios que você quer mapear.

    Recomendamos mapear o domínio sem "www" e o subdomínio www. É possível adicionar mais subdomínios, se necessário.

    Depois de adicionar todos os mapeamentos pretendidos, clique em Salvar mapeamentos.

  6. Clique em Continuar para ver os registros DNS do domínio.

    É possível recuperar esses registros a qualquer momento na guia Domínios personalizados da página Configurações do App Engine.

  7. Faça login no site do registrador de domínios e atualize seus registros DNS com os registros exibidos na etapa anterior.

Como atualizar registros DNS no registrador de domínios

Depois de mapear o serviço para um domínio personalizado no App Engine, você precisará atualizar os registros DNS no registrador de domínios. Por conveniência, o App Engine gera e exibe os registros DNS que você precisa inserir.

  1. Recupere as informações do registro DNS para os mapeamentos de domínio:

    No console do Google Cloud, acesse a guia Domínios personalizados da página Configurações do App Engine. A página lista os registros DNS de todos os domínios que você mapeou para o aplicativo.

  2. Faça login na sua conta no registrador de domínios e abra a página de configuração do DNS.

  3. Localize a seção de registros do host da página de configuração do domínio e adicione cada um dos registros DNS recuperados quando você mapeou o domínio para o aplicativo.

    Insira as seguintes informações nos campos de registro:

    • Tipo de registro: insira o tipo de registro exibido no registro DNS criado pelo Google para você (A, AAAA ou CNAME).
    • Record name:

      • Nos registros A ou AAAA, insira @.
      • Nos registros CNAME, insira um nome de domínio de terceiro nível. Por exemplo, insira www para mapear o subdomínio www.example.com.
    • Se você estiver usando o Cloud DNS, não será necessário adicionar um símbolo @ ao criar um registro A para seu domínio personalizado pai (example.com). No entanto, talvez seja necessário especificar um símbolo @ para outros provedores de DNS, como o GoDaddy.

    • TTL: especifique um TTL de acordo com suas necessidades.

    • Dados: insira os dados do registro (rrdata) mostrados no registro DNS que o Google criou para você.

      • Nos registros A ou AAAA, os dados do registro são um endereço IP.
      • Nos registros CNAME, os dados do registro são um nome de domínio.
  4. Salve as alterações na página de configuração do DNS da conta do domínio. Na maioria dos casos, leva apenas alguns minutos para que essas alterações entrem em vigor. No entanto, em alguns casos, pode levar várias horas, dependendo do registrador e do time to live (TTL) (em inglês) de qualquer registro DNS anterior para seu domínio. É possível usar uma ferramenta dig, como esta versão dig on-line, para confirmar se os registros de DNS foram atualizados.

  5. Teste navegando até o serviço no novo URL, por exemplo, https://www.example.com. Pode levar alguns minutos para que o certificado SSL automático seja emitido.

Como delegar propriedade a outros usuários ou contas de serviço do Google Cloud

Se você precisar delegar a propriedade do domínio a outros usuários ou contas de serviço, adicione a permissão pela página do Search Console: Para ver uma lista das contas de serviço, abra a página Contas de serviço no Console do Google Cloud.

Para adicionar permissões pelo Search Console:

  1. Abra a verificação do Search Console.

  2. Em Propriedades, clique no domínio em que você quer adicionar um usuário ou uma conta de serviço.

  3. Acesse Configurações no painel lateral.

  4. Em Configurações gerais, clique em Usuários e permissões para encontrar os proprietários do seu domínio.

  5. Clique em Adicionar usuário e insira o ID de e-mail do usuário. Selecione a permissão necessária para conceder ao usuário. Para saber mais sobre as permissões, consulte Como gerenciar proprietários, usuários e permissões.

  6. Clique em Adicionar para delegar a propriedade ao usuário.

Como usar subdomínios

Se você configurar um mapeamento de subdomínio com caracteres curinga para o domínio personalizado, o aplicativo exibirá as solicitações de qualquer subdomínio correspondente.

  • Se o usuário pesquisar um domínio que corresponda ao nome da versão do aplicativo ou ao nome do serviço, o aplicativo disponibilizará essa versão.
  • Caso o usuário pesquise um domínio que corresponda a um nome de serviço, esse serviço será disponibilizada pelo aplicativo.
  • Há um limite de 20 certificados SSL gerenciados por semana para cada domínio de base. Quando o limite é alcançado, o App Engine continua tentando emitir certificados gerenciados até que todas as solicitações sejam atendidas.

Mapeamentos com caracteres curinga

Use caracteres curinga para mapear subdomínios em qualquer nível, começando pelos de terceiro nível. Por exemplo, se seu domínio for example.com e você inserir texto no campo de endereço da Web:

  • Inserir *.example.com mapeia todos os subdomínios de example.com para seu aplicativo.
  • Inserir *.private.example.com mapeia todos os subdomínios de private.example.com para seu aplicativo.
  • Inserir *.nichol.sharks.nhl.example.com mapeia todos os subdomínios de nichol.sharks.nhl.example.com para seu aplicativo.
  • Inserir *.excogitate.system.example.com mapeia todos os subdomínios de excogitate.system.example.com para seu app.

É possível utilizar os mapeamentos com caracteres curinga com serviços no App Engine. Basta usar o arquivo dispatch.yaml para definir o roteamento de solicitações para serviços específicos.

Ao usar o Google Workspace com outros subdomínios no seu domínio, como sites e mail, esses mapeamentos terão prioridade mais alta e serão correspondidos antes de qualquer mapeamento com caractere curinga. Além disso, se você tiver outros aplicativos do App Engine mapeados para outros subdomínios, esses mapeamentos também terão prioridade mais alta que qualquer mapeamento com caracteres curinga.

Alguns provedores de DNS podem não funcionar com mapeamento de subdomínio com caractere curinga. Especificamente, um provedor de DNS precisa permitir caracteres curinga em entradas de host CNAME.

As regras de roteamento de caracteres curinga se aplicam a URLs que contêm componentes de serviços, versões e instâncias seguindo as regras de roteamento de serviço do App Engine.

Como excluir domínios personalizados do seu app

Para excluir um mapeamento de domínio personalizado do aplicativo, a conta precisa ter o papel de administrador do App Engine (roles/appengine.appAdmin) ou um papel personalizado que contenha a permissão appengine.applications.update.

No console do Google Cloud, faça o seguinte:

  1. Acesse a guia Domínios personalizados da página Configurações do App Engine.

    Acesse "Domínios personalizados"

  2. Selecione o nome de domínio personalizado e clique em Excluir.

Também é possível usar comandos gcloud ou a API Admin para excluir domínios personalizados.

Solução de problemas

Se o app mostrar erros de autenticação depois que você configurar o domínio personalizado com a autenticação do domínio do Google Workspace, remova o mapeamento e refaça as etapas de mapeamento de um domínio personalizado para o app. Configure a autenticação do domínio do Google Workspace antes de configurar o mapeamento de domínio personalizado no App Engine.

A seguir