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 externo regional ou em um balanceador de carga de aplicativo interno regional.

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:

  • Crie um certificado gerenciado pelo Google emitido por uma CA confiável e publicamente com autorização de DNS usando o Gerenciador de certificados. Para criar um certificado regional gerenciado pelo Google, é preciso usar a autorização 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. A versão 465.0.0 ou mais recente da CLI do Google Cloud é necessária 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 deste 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.
    • DNS Administrator: 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 nesta seção para criar uma autorização de DNS e um certificado gerenciado pelo Google que faça referência a essa autorização.

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 de 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 saída, conforme mostrado no exemplo abaixo. Use o registro CNAME da saída para adicionar à 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 sua solução de DNS de terceiros.

Antes de concluir as etapas nesta seção, verifique se você criou uma zona 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 de DNS correspondente.
    • CNAME_RECORD_NAME: o valor do nome completo do registro CNAME retornado pelo comando da CLI gcloud que criou a autorização de 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 suas 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:

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 asterisco (*.) significa um certificado de 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 o 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 *. indica um certificado de 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 o 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 até várias horas para o estado do certificado mudar 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:

certificatePem: myPEM
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
scope: myScope
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 externo regional 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, siga estas etapas:

  1. Exclua o certificado gerenciado pelo Google:
    gcloud certificate-manager certificates delete CERTIFICATE_NAME
       --location=LOCATION
    
    Substitua:
  • 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:
  • AUTHORIZATION_NAME: o nome da autorização de DNS.
  • LOCATION: o local em que você criou a autorização de DNS.

A seguir