Neste tutorial, explicamos o processo de implantação do certificado usando um certificado gerenciado pelo Google com uma autorização do balanceador de carga como exemplo.
Para uma comparação dos tipos compatíveis de autorização de domínio, consulte Autorização de domínio.
Os seguintes balanceadores de carga são compatíveis com 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
Se você quiser migrar um certificado atual para o Gerenciador de certificados, siga as etapas em Migrar certificados para o Gerenciador de certificados.
Objetivos
Nesta seção, mostramos como concluir as seguintes tarefas:
- Use o Gerenciador de certificados para criar um certificado gerenciado pelo Google emitido por uma AC publicamente confiável com autorização do balanceador de carga.
- Implante o certificado em um balanceador de carga compatível usando um proxy HTTPS de destino.
Para mais informações sobre o processo de implantação do certificado, consulte Visão geral da implantação.
Se você estiver seguindo as etapas deste tutorial para implantar um certificado para um domínio que já esteja atendendo ao tráfego de produção, lembre-se de que o tráfego para esse domínio será interrompido enquanto o certificado é provisionado e ativado no balanceador de carga correspondente.
Antes de começar
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
Verifique se você tem os papéis a seguir para concluir as tarefas neste tutorial:
- Proprietário do Gerenciador de certificados: necessário para criar e gerenciar recursos do Gerenciador de certificados.
- Administrador do balanceador de carga do Compute ou Administrador de rede do Compute: necessário para criar e gerenciar o proxy de destino HTTPS.
- Administrador de DNS: obrigatório se você quiser usar o Cloud DNS como sua solução de DNS.
Para ver mais informações, consulte os seguintes tópicos:
- Papéis e permissões do Gerenciador de certificados
- Papéis e permissões do IAM do Compute Engine para o Compute Engine
- Controle de acesso com o IAM para Cloud DNS
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, conclua as etapas desta seção.
Para especificar vários nomes de domínio para o certificado, forneça uma lista delimitada por vírgulas de nomes de domínio de destino para o certificado.
Para mais informações, consulte Permissões e papéis.
Console
No console do Google Cloud, acesse a página Gerenciador de certificados.
Na página exibida, selecione a guia Certificados.
Clique em Adicionar certificado.
Digite um Nome para o certificado.
O nome precisa ser exclusivo no projeto.
Opcional: digite a Descrição do certificado. A descrição ajudará você a identificar um certificado específico posteriormente.
Em Local, escolha Global.
Em Escopo, escolha Padrão.
Em Tipo de certificado, escolha Criar um certificado gerenciado pelo Google.
Em Tipo de autoridade de certificação, escolha Pública.
Especifique os Nomes de domínio do certificado. Insira uma lista separada por vírgulas dos domínios de destino. Além disso, cada nome de domínio precisa ser um nome de domínio totalmente qualificado, como
myorg.example.com
.Em Tipo de autorização, escolha Autorização do balanceador de carga.
Especifique um rótulo para associar ao certificado. É possível adicionar mais de um rótulo, se necessário. Para adicionar um rótulo, clique no botão add_box Adicionar rótulo e especifique um
key
e umvalue
para ele.Clique em Criar. Verifique se o novo certificado aparece na lista.
gcloud
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="DOMAIN_NAMES"
Substitua:
CERTIFICATE_NAME
: um nome exclusivo do certificado.DOMAIN_NAMES
: uma lista separada por vírgulas dos domínios de destino do certificado. 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 de destino do Google Cloud.CERTIFICATE_NAME
: um nome exclusivo que descreve o certificado.DOMAIN_NAME
: o domínio de destino deste certificado. O nome de domínio precisa ser totalmente qualificado, comomyorg.example.com
.
Para uma visão geral do processo de implantação do certificado, consulte Visão geral da implantação.
Implantar o certificado em um balanceador de carga
Conclua as etapas desta seção para implantar o certificado gerenciado pelo Google que você criou nas etapas anteriores em um balanceador de carga.
Criar um CertificateMap
Crie um mapa de certificados que faça referência à entrada do mapa de certificados associada ao seu certificado.
gcloud
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
Substitua CERTIFICATE_MAP_NAME
pelo nome do mapa de certificado de destino.
Terraform
Criar uma entrada de mapa de certificado
Crie uma entrada do mapa de certificado e associe-a ao certificado e ao mapa de certificados.
gcloud
gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME" \ --certificates="CERTIFICATE_NAME" \ --hostname="HOSTNAME"
Substitua:
CERTIFICATE_MAP_ENTRY_NAME
: um nome exclusivo da entrada do mapa de certificado.CERTIFICATE_MAP_NAME
: o nome do mapa de certificado a que essa entrada do mapa de certificado é anexada.CERTIFICATE_NAME
: o nome do certificado que você quer associar a essa entrada do mapa de certificado.HOSTNAME
: o nome do host que você quer associar a essa entrada do mapa de certificado
Terraform
Use um recurso
google_certificate_manager_certificate_map_entry
.
Verificar se a entrada do mapa de certificado está ativa
Use o comando a seguir para verificar se a entrada do mapa de certificados está ativa antes de anexar o mapa de certificado correspondente ao proxy de destino:
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 do certificado de destinoCERTIFICATE_MAP_NAME
: o nome do mapa de certificado a que essa entrada do mapa de certificado é anexada.
O comando retorna uma saída semelhante a esta:
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
Anexe o mapa de certificado configurado ao proxy de destino.
Console
- No Console do Google Cloud, acesse a página Proxies de destino.
Anote o nome do proxy de destino.
Anexe o mapa de certificado ao proxy de destino:
gcloud compute target-https-proxies update PROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME"
Substitua:
* `PROXY_NAME`: the name of the target proxy
* `CERTIFICATE_MAP_NAME`: the name of the certificate
map referencing your certificate map entry and its associated
certificate
Terraform
Se houver certificados TLS (SSL) anexados diretamente ao proxy, ele dará preferência aos certificados referenciados pelo mapa de certificados em vez dos certificados TLS (SSL) anexados diretamente.
Aguardar até que o certificado seja ativado
Depois de anexar o certificado ao proxy de destino, pode levar várias horas para que ele seja emitido e o status dele mude para ACTIVE
. Quando o status for ACTIVE
, pode levar até 30 minutos para que o balanceador
de carga comece a usar o certificado.
Use o seguinte comando para verificar o status do certificado:
gcloud certificate-manager certificates describe CERTIFICATE_NAME
Substitua CERTIFICATE_NAME
pelo nome do certificado de destino gerenciado pelo Google.
O comando retorna uma saída semelhante a esta:
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 sanDnsnames: - myorg.example.com updateTime: '2021-10-20T12:19:55.083385630Z'
Se o status do certificado não tiver mudado para ACTIVE
após várias horas, verifique o seguinte:
- O mapa de certificado que faz referência a este certificado foi anexado ao proxy de destino correto, conforme descrito em Anexar um mapa de certificado a um proxy.
- O proxy de destino foi anexado ao balanceador de carga correto, conforme descrito
em Verificar a associação do proxy
de destino.
- A configuração de DNS do domínio de destino aponta para o endereço IP do balanceador de carga de destino, conforme descrito em Atualizar os registros DNS A e AAAA para apontar para o endereço IP do balanceador de carga.
Para mais etapas de solução de problemas, consulte Como solucionar problemas de certificados SSL.
Limpar
Para reverter as alterações feitas neste tutorial, conclua as etapas a seguir:
Remover o mapa de certificado do proxy.
Antes de desanexar o mapa de certificado, observe o seguinte:
- Se houver algum certificado TLS (SSL) anexado diretamente ao proxy, desanexar o mapa de certificado fará com que ele volte a usar esses certificados TLS (SSL) anexados diretamente.
- Se não houver certificados TLS (SSL) anexados diretamente ao proxy, o mapa de certificados não poderá ser desanexado do proxy. Primeiro, é necessário anexar pelo menos um certificado TLS (SSL) diretamente ao proxy antes de desanexar o mapa de certificados.
Para desanexar o mapa de certificado, execute o seguinte comando:
gcloud compute target-https-proxies update PROXY_NAME \ --clear-certificate-map
Exclua a entrada do mapa de certificado:
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 do certificado de destinoCERTIFICATE_MAP_NAME
: o nome do mapa de certificado de destino.
Exclua o mapa de certificado:
gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
Substitua
CERTIFICATE_MAP_NAME
pelo nome do mapa de certificado de destino.Exclua o certificado gerenciado pelo Google:
gcloud certificate-manager certificates delete CERTIFICATE_NAME
Substitua
CERTIFICATE_NAME
pelo nome do certificado de destino.