Este tutorial mostra como usar o Gerenciador de certificados para implantar um certificado global gerenciado pelo Google com autorização do balanceador de carga.
A autorização do balanceador de carga é o método mais eficiente para conseguir um certificado gerenciado pelo Google. Ele mantém a configuração de DNS limpa e provisiona o certificado TLS após a conclusão da configuração.
Os balanceadores de carga a seguir oferecem suporte a certificados gerenciados pelo Google com autorização do balanceador de carga:
- Balanceador de carga de aplicativo externo global
- Balanceador de carga de aplicativo clássico
- Balanceador de carga de rede de proxy externo global
Objetivos
Nesta seção, mostramos como concluir as seguintes tarefas:
- Crie um certificado gerenciado pelo Google emitido por uma autoridade certificadora (AC) publicamente confiável com autorização do balanceador de carga usando o Gerenciador de certificados.
- Implante o certificado em um balanceador de carga compatível usando um proxy HTTPS de destino.
Se você estiver implantando um certificado em um domínio de produção, o tráfego será interrompido por um breve período enquanto o certificado é configurado e ativado no balanceador de carga.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine, Certificate Manager APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine, Certificate Manager APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Funções exigidas
Confira se você tem os seguintes papéis para concluir as tarefas deste tutorial:
Proprietário do Gerenciador de certificados (
roles/certificatemanager.owner
)Necessário para criar e gerenciar recursos do Gerenciador de certificados.
Administrador do balanceador de carga do Compute (
roles/compute.loadBalancerAdmin
) ou administrador da rede do Compute (roles/compute.networkAdmin
)É necessário para criar e gerenciar o proxy de destino HTTPS.
Administrador do DNS (
roles/dns.admin
)Obrigatório se você quiser usar o Cloud DNS como solução de DNS.
Para ver mais informações, consulte os seguintes tópicos:
- Funções e permissões para o Gerenciador de certificados.
- Papéis e permissões do IAM do Compute Engine para o Compute Engine.
- Papéis e permissões para o Cloud DNS.
Nomes de domínio
Para criar certificados, obtenha os nomes de domínio totalmente qualificados (FQDNs) dos domínios que você possui. Se você não tiver um domínio, use o Cloud Domains para registrar um domínio.
Criar o balanceador de carga
Este tutorial pressupõe que você já criou e configurou os back-ends, as verificações de integridade, os serviços de back-end e os mapas de URL do balanceador de carga. Se você criou um balanceador de carga de aplicativo externo, anote o nome do mapa de URL, porque ele será necessário mais adiante neste tutorial.
Se você não criou o balanceador de carga, consulte as páginas a seguir para criar um:
Para criar um balanceador de carga de aplicativo externo global, consulte Configurar um balanceador de carga de aplicativo externo global com back-ends de grupos de instâncias de VM.
Para criar um balanceador de carga de aplicativo clássico, consulte Configurar um balanceador de carga de aplicativo clássico com um back-end de grupo de instâncias gerenciado.
Para criar um balanceador de carga de rede (proxy SSL) de proxy externo global, consulte Configurar um balanceador de carga de rede (proxy SSL) de proxy externo global com back-ends de grupo de instâncias de VM.
Para criar um balanceador de carga de rede de proxy clássico (proxy SSL), consulte Configurar um balanceador de carga de rede de proxy clássico (proxy SSL) com back-ends de grupo de instâncias de VM.
Criar um certificado gerenciado pelo Google com autorização do balanceador de carga
Para criar um certificado gerenciado pelo Google com autorização do balanceador de carga, faça o seguinte:
Console
No console do Google Cloud, acesse a página Gerenciador de certificados.
Na guia Certificados, clique em Adicionar certificado.
No campo Nome do certificado, insira um nome exclusivo para o certificado.
Opcional: no campo Descrição, insira uma descrição para o certificado. A descrição permite identificar o certificado.
Em Local, selecione Global.
Em Escopo, selecione Padrão.
Em Tipo de certificado, selecione Criar certificado gerenciado pelo Google.
Em Tipo de autoridade certificadora, selecione Pública.
No campo Domain Names, especifique uma lista delimitada por vírgulas de nomes de domínio do certificado. Cada nome de domínio precisa ser um nome de domínio totalmente qualificado, como
myorg.example.com
.Em Tipo de autorização, selecione Autorização do balanceador de carga.
No campo Rótulos, especifique os rótulos a serem associados ao certificado. Para adicionar um rótulo, clique em
Adicionar rótulo e especifique uma chave e um valor para o rótulo.Clique em Criar.
O novo certificado aparece na lista de certificados.
gcloud
Para criar um certificado global gerenciado pelo Google com autorização do balanceador de carga, use o comando certificate-manager certificates create
:
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="DOMAIN_NAMES"
Substitua:
CERTIFICATE_NAME
: o nome do certificado.DOMAIN_NAMES
: uma lista delimitada por vírgulas dos domínios de destino. Cada nome de domínio precisa ser um nome de domínio totalmente qualificado, comomyorg.example.com
.
Terraform
Use um recurso
google_certificate_manager_certificate
.
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
API
Crie o certificado fazendo uma solicitação POST
ao método
certificates.create
da seguinte maneira:
POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME" { "managed": { "domains": ["DOMAIN_NAME"], } }
Substitua:
PROJECT_ID
: o ID do projeto do Google Cloud.CERTIFICATE_NAME
: o nome do certificado.DOMAIN_NAMES
: uma lista delimitada por vírgulas dos domínios de destino. Cada nome de domínio precisa ser um nome de domínio totalmente qualificado, comomyorg.example.com
.
Implantar o certificado em um balanceador de carga
Para implantar o certificado global gerenciado pelo Google, use um mapa de certificados.
Criar um CertificateMap
Crie um mapa de certificados que faça referência à entrada de mapa de certificados associada ao seu certificado:
gcloud
Para criar um mapa de certificado, use o comando gcloud certificate-manager maps create
:
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
Substitua CERTIFICATE_MAP_NAME
pelo nome do mapa de certificado
de destino.
Terraform
Para criar um mapa de certificado, use um
recurso google_certificate_manager_certificate_map
.
Criar uma entrada do mapa de certificados
Crie uma entrada de mapa de certificados e a associe ao seu certificado e ao mapa de certificados:
gcloud
Para criar uma entrada de mapa de certificado, use o comando gcloud certificate-manager maps entries create
:
gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME" \ --certificates="CERTIFICATE_NAME" \ --hostname="HOSTNAME"
Substitua:
CERTIFICATE_MAP_ENTRY_NAME
: o nome da entrada do mapa de certificados.CERTIFICATE_MAP_NAME
: o nome do mapa de certificados ao qual a entrada do mapa de certificados está anexada.CERTIFICATE_NAME
: o nome do certificado que você quer associar à entrada do mapa de certificados.HOSTNAME
: o nome do host que você quer associar à entrada do mapa de certificados.Se você estiver criando certificados com um domínio curinga, especifique o nome do host com um curinga também, como
*.example.com
.
Terraform
Para criar uma entrada de mapa de certificado, use um recurso google_certificate_manager_certificate_map_entry
.
Verificar se a entrada do mapa de certificados está ativa
Verifique se a entrada do mapa de certificados está ativa antes de anexar o mapa de certificado correspondente ao proxy de destino.
Para verificar a entrada do mapa de certificados, use o comando gcloud certificate-manager maps entries describe
:
gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME"
Substitua:
CERTIFICATE_MAP_ENTRY_NAME
: o nome da entrada do mapa de certificados.CERTIFICATE_NAME
: o nome do certificado que você quer associar à entrada do mapa de certificados.
O resultado será assim:
certificates: createTime: '2021-09-06T10:01:56.229472109Z' hostname: example.com name: projects/my-project/locations/global/certificateMaps/myCertMap/certificateMapEntries/myCertMapEntry state: ACTIVE updateTime: '2021-09-06T10:01:58.277031787Z'
Anexar o mapa de certificado ao proxy de destino
É possível anexar o mapa de certificado a um novo proxy de destino ou a um proxy de destino existente.
gcloud
Para anexar o mapa de certificado a um novo proxy de destino, use o comando gcloud compute target-https-proxies create
:
gcloud compute target-https-proxies create PROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME" \ --url-map="URL_MAP" \ --global
Substitua:
PROXY_NAME
: o nome do proxy de destino.CERTIFICATE_MAP_NAME
: o nome do mapa de certificado que faz referência à entrada do mapa de certificado e ao certificado associado.URL_MAP
: o nome do mapa de URL
Para anexar o mapa de certificado a um proxy HTTPS de destino, use o comando gcloud compute target-https-proxies update
. Se você não souber o nome do proxy de destino atual, acesse a página Proxy de destino e anote o nome dele.
gcloud compute target-https-proxies update PROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME" \ --global
Depois de criar ou atualizar o proxy de destino, execute o seguinte comando para verificar:
gcloud compute target-https-proxies list
Terraform
Para anexar o mapa de certificado ao proxy de destino, use um
recurso google_compute_target_https_proxy
.
Ao configurar um proxy de destino, se você anexar certificados TLS (SSL) diretamente e também por um mapa de certificados, o proxy usará os certificados referenciados pelo mapa de certificados e ignorará os certificados TLS (SSL) anexados diretamente.
Verificar o status do certificado
Antes de implantar um certificado em um balanceador de carga, verifique se ele está ativo. Pode
levar vários minutos para que o estado do certificado mude para ACTIVE
.
Console
No console do Google Cloud, acesse a página Gerenciador de certificados.
Na guia Certificados, verifique a coluna Status do certificado.
gcloud
Para verificar o status do certificado, execute o seguinte comando:
gcloud certificate-manager certificates describe CERTIFICATE_NAME
Substitua CERTIFICATE_NAME
pelo nome do certificado gerenciado pelo Google de destino.
O resultado será assim:
createTime: '2021-10-20T12:19:53.370778666Z' expireTime: '2022-05-07T05:03:49Z' managed: authorizationAttemptInfo: - domain: myorg.example.com state: AUTHORIZED domains: - myorg.example.com state: ACTIVE name: projects/myProject/locations/global/certificates/myCert pemCertificate: | -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- sanDnsnames: - myorg.example.com updateTime: '2021-10-20T12:19:55.083385630Z'
Se o estado do certificado não for ACTIVE
após várias horas, verifique o
seguinte:
- O mapa de certificado que faz referência ao certificado é anexado ao proxy de destino correto.
- O proxy de destino está anexado ao balanceador de carga correto.
- A configuração de DNS do domínio de destino aponta para o endereço IP do balanceador de carga de destino.
Para mais etapas de solução de problemas, consulte Solução de problemas do Gerenciador de certificados.
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados neste tutorial, exclua-os.
Exclua o balanceador de carga e os recursos dele.
Para mais informações, consulte Limpar uma configuração de balanceamento de carga.
Exclua ou desconecte o mapa de certificados do proxy.
Para excluir o mapa de certificados, execute o seguinte comando:
gcloud compute target-https-proxies delete PROXY_NAME
Se você quiser manter o proxy HTTPS de destino, remova o mapa de certificado do proxy. Antes de desconectar o mapa de certificado, observe o seguinte:
- Se houver certificados TLS (SSL) anexados diretamente ao proxy, a remoção do mapa de certificados faz com que o proxy volte a usar esses certificados TLS (SSL) anexados diretamente.
- Se não houver certificados TLS (SSL) anexados diretamente ao proxy, o mapa de certificado não poderá ser removido do proxy. É necessário anexar pelo menos um certificado TLS (SSL) diretamente ao proxy antes de desconectar o mapa de certificado.
Para desconectar o mapeamento de certificado, execute o seguinte comando:
gcloud compute target-https-proxies update PROXY_NAME \ --clear-certificate-map
Substitua
PROXY_NAME
pelo nome do proxy de destino.Exclua a entrada do mapa de certificados:
gcloud certificate-manager maps entries delete CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME"
Substitua:
CERTIFICATE_MAP_ENTRY_NAME
: o nome da entrada do mapa de certificados.CERTIFICATE_MAP_NAME
: o nome do mapa de certificados.
Exclua o mapa de certificados:
gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
Substitua
CERTIFICATE_MAP_NAME
pelo nome do mapa de certificado.Exclua o certificado gerenciado pelo Google:
Console
No console do Google Cloud, acesse a página Gerenciador de certificados.
Na guia Certificados, marque a caixa de seleção do certificado.
Clique em Excluir.
Na caixa de diálogo exibida, clique em Excluir para confirmar.
gcloud
gcloud certificate-manager certificates delete CERTIFICATE_NAME
Substitua
CERTIFICATE_NAME
pelo nome do certificado de destino.