Implantar um certificado regional gerenciado pelo Google


Neste tutorial, descrevemos como usar o Gerenciador de certificados para implantar um certificado regional gerenciado pelo Google em um balanceador de carga de aplicativo regional externo ou interno.

Para implantar um certificado em um balanceador de carga de aplicativo externo regional ou em um balanceador de carga de aplicativo interno regional, anexe o certificado diretamente ao proxy de destino.

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 de DNS. Para criar um certificado regional gerenciado pelo Google, use a autorização de DNS por projeto.

  • 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.

Antes de começar

  1. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  2. É necessário ter a versão 465.0.0 ou mais recente da CLI do Google Cloud para implantar o certificado. Para verificar a versão da CLI gcloud, execute o seguinte comando:

    gcloud --version
    
  3. Para atualizar a CLI gcloud, execute o comando a seguir.

    gcloud components update
    
  4. 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:

Criar um certificado regional gerenciado pelo Google

Conclua as etapas desta seção para criar uma autorização de DNS e um certificado gerenciado pelo Google que faça referência a essa autorização de DNS.

Criar uma autorização de DNS

Crie a autorização de DNS conforme descrito nesta seção. Se você estiver criando uma autorização de DNS para um certificado com caractere curinga, como *.myorg.example.com, configure a autorização de DNS para o domínio pai, por exemplo, myorg.example.com.

gcloud

gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \
    --domain="DOMAIN_NAME" \
    --type=PER_PROJECT_RECORD \
    --location="LOCATION" \
gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME \
    --location="LOCATION"

Substitua:

  • AUTHORIZATION_NAME: o nome da autorização de DNS.
  • DOMAIN_NAME: o nome do domínio para o qual você está criando essa autorização de DNS. O nome de domínio precisa ser totalmente qualificado, como myorg.example.com.
  • LOCATION: o local em que você cria a autorização de DNS.

O comando retorna uma resposta conforme mostrado no exemplo a seguir. Use o registro CNAME da saída para adicionar à sua configuração de DNS.

createTime: '2022-01-14T13:35:00.258409106Z'
dnsResourceRecord:
data: 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.us-central1.authorize.certificatemanager.goog.
name: _acme-challenge_ujmmovf2vn55tgye.myorg.example.com.
type: CNAME
domain: myorg.example.com
name: projects/myProject/locations/us-central1/dnsAuthorizations/myAuthorization
updateTime: '2022-01-14T13:35:01.571086137Z'

Adicionar o registro CNAME à configuração de DNS

Se você estiver usando o Google Cloud para gerenciar seu DNS, conclua as etapas desta seção. Caso contrário, consulte a documentação da solução de DNS de terceiros.

Antes de concluir as etapas nesta seção, verifique se você criou uma zona de DNS pública.

Quando você cria uma autorização de DNS, o comando da CLI gcloud retorna o registro CNAME correspondente. Você precisa adicionar esse registro CNAME à sua configuração DNS na zona DNS do domínio de destino da seguinte maneira:

gcloud

  1. Inicie a transação do registro DNS:

    gcloud dns record-sets transaction start --zone="DNS_ZONE_NAME"
    

    Substitua DNS_ZONE_NAME pelo nome da zona DNS de destino.

  2. Adicione o registro CNAME à zona DNS de destino:

    gcloud dns record-sets transaction add CNAME_RECORD_DATA \
      --name= "CNAME_RECORD_NAME" \
      --ttl="30" \
      --type="CNAME" \
      --zone="DNS_ZONE_NAME"
    

    Substitua:

    • CNAME_RECORD_DATA: o valor de dados completo do registro CNAME retornado pelo comando da CLI gcloud que criou a autorização DNS correspondente.
    • CNAME_RECORD_NAME: o valor do nome completo do registro CNAME retornado pelo comando da CLI gcloud que criou a autorização DNS correspondente.
    • DNS_ZONE_NAME: o nome da zona de DNS de destino.

    Veja o exemplo a seguir:

    gcloud dns record-sets transaction add 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.us-central1.authorize.certificatemanager.goog. \
      --name="_acme-challenge_ujmmovf2vn55tgye.myorg.example.com" \
      --ttl="30" \
      --type="CNAME" \
      --zone="example-com"
    
  3. Execute a transação do registro DNS para salvar as alterações:

    gcloud dns record-sets transaction execute --zone="DNS_ZONE_NAME"
    

    Substitua DNS_ZONE_NAME pelo nome da zona de DNS de destino.

Criar um certificado regional gerenciado pelo Google que faça referência à autorização de DNS

Para criar um certificado gerenciado pelo Google que faça referência à autorização de DNS criada nas etapas anteriores, faça o seguinte:

Console

  1. No console do Google Cloud, acesse a página Gerenciador de certificados.

    Acessar o Gerenciador de certificados

  2. Na página exibida, selecione a guia Certificados.

  3. Clique em Adicionar certificado.

  4. Digite um Nome para o certificado.

    O nome precisa ser exclusivo no projeto.

  5. Opcional: digite a Descrição do certificado. A descrição ajudará você a identificar um certificado específico posteriormente.

  6. Em local, escolha Regional.

  7. Na lista Região, selecione uma região.

  8. Em Tipo de certificado, escolha Criar um certificado gerenciado pelo Google.

  9. Em Tipo de autoridade de certificação, escolha Pública.

  10. 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.

  11. Em Tipo de autorização, escolha Autorização de DNS. Se o nome de domínio tiver uma autorização DNS associada, ele será selecionado automaticamente. Se o nome de domínio não tiver uma autorização DNS associada, faça o seguinte:

    1. Clique em Criar autorização de DNS ausente para exibir a caixa de diálogo Criar autorização de DNS.
    2. No campo DNS Authorization Name, especifique o nome da autorização de DNS.
    3. Clique em Criar autorização de DNS. Verifique se o nome DNS está associado ao nome de domínio.
  12. 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 Adicionar rótulo e especifique um key e um value para ele.

  13. Clique em Criar. Verifique se o novo certificado aparece na lista.

gcloud

Execute este comando:

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --domains=DOMAIN_NAME \
    --dns-authorizations=AUTHORIZATION_NAME \
    --location=LOCATION

Substitua:

  • CERTIFICATE_NAME: um nome exclusivo do certificado.
  • DOMAIN_NAME: o domínio de destino do certificado. O prefixo de ponto de asterisco (*.) indica um certificado com caractere curinga. O nome de domínio precisa ser um nome de domínio totalmente qualificado, como myorg.example.com.
  • AUTHORIZATION_NAME: o nome da autorização de DNS que você criou para esse certificado.
  • LOCATION: o local em que você cria o certificado gerenciado pelo Google.

Para criar um certificado gerenciado pelo Google com um nome de domínio curinga, use o comando a seguir. Um certificado de nome de domínio com caractere curinga abrange todos os subdomínios de primeiro nível de um determinado domínio.

gcloud certificate-manager certificates create CERTIFICATE_NAME \
   --domains="*.DOMAIN_NAME,DOMAIN_NAME" \
   --dns-authorizations=AUTHORIZATION_NAME
   --location=LOCATION

Substitua:

  • CERTIFICATE_NAME: um nome exclusivo do certificado.
  • DOMAIN_NAME: o domínio de destino do certificado. O prefixo *. significa um certificado com caractere curinga. O nome de domínio precisa ser totalmente qualificado, como myorg.example.com.
  • AUTHORIZATION_NAME: o nome da autorização de DNS que você criou para esse certificado.
  • LOCATION: o local em que você cria o certificado gerenciado pelo Google.

Verificar se o certificado está ativo

Use o comando a seguir para verificar se o próprio certificado está ativo antes de implantá-lo no balanceador de carga. Pode levar várias horas para que o estado do certificado mude para ACTIVE.

gcloud certificate-manager certificates describe CERTIFICATE_NAME \
    --location=LOCATION

Substitua:

  • CERTIFICATE_NAME: um nome exclusivo do certificado.
  • LOCATION: o local onde você criou o certificado gerenciado pelo Google.

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
  dnsAuthorizations:
  -  projects/my-project/locations/us-central1/dnsAuthorizations/myAuth
  domains:
  - myorg.example.com
  state: ACTIVE
name: projects/myProject/locations/us-central1/certificates/myCert
pemCertificate: |
  -----BEGIN CERTIFICATE-----
  [...]
  -----END CERTIFICATE-----
sanDnsnames:
- myorg.example.com
updateTime: '2021-10-20T12:19:55.083385630Z'

Implantar o certificado em um balanceador de carga

Para implantar o certificado gerenciado pelo Google em um balanceador de carga, conclua as etapas a seguir.

Antes de prosseguir com as tarefas nesta seção, verifique se você concluiu as tarefas listadas na seção Criar um certificado regional gerenciado pelo Google.

Para implantar um certificado regional gerenciado pelo Google em um balanceador de carga de aplicativo regional externo ou interno regional, implante o certificado anexando-o diretamente ao proxy de destino.

Anexar o certificado diretamente ao proxy de destino

Para anexar o certificado diretamente ao proxy, execute o seguinte comando:

gcloud compute target-https-proxies update PROXY_NAME \
    --url-map=URL_MAP \
    --region=REGION \
    --certificate-manager-certificates=CERTIFICATE_NAME

Substitua:

  • PROXY_NAME: um nome exclusivo do proxy.
  • URL_MAP: o nome do mapa de URL que você criou quando criou o balanceador de carga.
  • REGION: a região em que o proxy de destino HTTPS será criado.
  • CERTIFICATE_NAME: o nome do certificado.

Limpar

Para reverter as alterações feitas neste tutorial, conclua as etapas a seguir:

  1. Exclua o certificado gerenciado pelo Google:
    gcloud certificate-manager certificates delete CERTIFICATE_NAME
       --location=LOCATION
    
    Substitua o seguinte:
  • CERTIFICATE_NAME: o nome do certificado.
  • LOCATION: o local onde você criou o certificado gerenciado pelo Google.
  1. Exclua a autorização de DNS:
    gcloud certificate-manager dns-authorizations delete AUTHORIZATION_NAME
       --location=LOCATION
    
    Substitua o seguinte:
  • AUTHORIZATION_NAME: o nome da autorização de DNS.
  • LOCATION: o local onde você criou a autorização de DNS.

A seguir