Implantar um certificado gerenciado pelo Google em várias regiões com o Certificate Authority Service


Este tutorial mostra como usar o Certificate Manager para implantar um certificado global gerenciado pelo Google com o Certificate Authority Service em um balanceador de carga de aplicativo interno entre regiões.

Se você quiser implantar em balanceadores de carga externos globais ou regionais, consulte:

Objetivos

Nesta seção, mostramos como concluir as seguintes tarefas:

  • Crie um certificado gerenciado pelo Google com o serviço de AC usando o Gerenciador de certificados.
  • Implante o certificado em um balanceador de carga compatível usando um proxy HTTPS de destino.

Antes de começar

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine, Certificate Manager, Certificate Authority APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Compute Engine, Certificate Manager, Certificate Authority APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init
  12. Ative a API CA Service.
  13. Crie um pool de ACs. É necessário criar e ativar pelo menos uma AC nesse pool.

Antes de seguir as etapas deste tutorial, anote o seguinte:

  • Os certificados criados com o Certificate Authority Service não são confiáveis publicamente. Para emitir certificados de confiança pública, crie certificados com autorização de DNS ou autorização de balanceador de carga.
  • Se uma política de emissão de certificados estiver em vigor no pool de AC de destino, o provisionamento de certificados poderá falhar por um dos seguintes motivos:

    • A política de emissão de certificados bloqueou o certificado solicitado. Nesse caso, você não vai receber cobranças porque o certificado não foi emitido.
    • A política aplicou mudanças ao certificado que não são compatíveis com o Gerenciador de certificados. Nesse caso, você vai receber uma cobrança porque o certificado foi emitido, mesmo que não seja totalmente compatível com o Gerenciador de certificados.
  • Os certificados TLS globais gerenciados pelo Google podem ser configurados para serem emitidos de um pool de AC em qualquer região.

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 de serviço de CA (roles/privateca.admin)

    Obrigatória para realizar ações no serviço de CA.

Para ver mais informações, consulte os seguintes tópicos:

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. Anote o nome do mapa de URL, porque você vai precisar dele mais tarde neste tutorial.

Se você não criou um balanceador de carga de aplicativo interno entre regiões, consulte Configurar um balanceador de carga de aplicativo interno entre regiões com back-ends de grupo de instâncias de VM.

Configurar a integração do serviço de CA com o Certificate Manager

Para integrar o serviço de CA ao Certificate Manager, siga estas etapas:

  1. No projeto do Google Cloud de destino, crie uma conta de serviço do Certificate Manager:

    gcloud beta services identity create --service=certificatemanager.googleapis.com \
        --project=PROJECT_ID
    

    Substitua PROJECT_ID pelo ID do projeto do Google Cloud de destino.

    O comando retorna o nome da identidade de serviço criada. Veja o exemplo a seguir:

    service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com
    
  2. Conceda à conta de serviço do Certificate Manager a função de solicitante de certificado do serviço de CA (roles/privateca.certificateRequester) no pool de AC de destino:

    gcloud privateca pools add-iam-policy-binding CA_POOL \
        --location LOCATION \
        --member "serviceAccount:SERVICE_ACCOUNT" \
        --role roles/privateca.certificateRequester
    

    Substitua:

    • CA_POOL: o ID do pool de ACs de destino.
    • LOCATION: o local Google Cloud de destino.
    • SERVICE_ACCOUNT: o nome completo da conta de serviço criada na etapa 1.
  3. Crie um recurso de configuração de emissão de certificados para o pool de ACs:

    Console

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

      Acessar o Gerenciador de certificados

    2. Na guia Issuance Configs, clique em Create.

    3. No campo Nome, insira um nome exclusivo para a configuração de emissão de certificados.

    4. Opcional: no campo Descrição, insira uma descrição para a configuração de emissão.

    5. Em Local, selecione Global.

    6. Opcional: no campo Vida útil, especifique a vida útil do certificado emitido em dias. O valor precisa estar entre 21 e 30 dias (inclusive).

    7. Opcional: na Porcentagem da janela de rotação, especifique a porcentagem do ciclo de vida do certificado quando o processo de renovação começar. Para encontrar o intervalo de valores válidos, consulte Percentual de janela de vida útil e rotação.

    8. Opcional: na lista Algoritmo de chave, selecione o algoritmo de chave a ser usado ao gerar a chave privada.

    9. Na lista Pool de AC, selecione o nome do pool de AC a ser atribuído a este recurso de configuração de emissão de certificados.

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

    11. Clique em Criar.

    gcloud

    gcloud certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \
        --ca-pool=CA_POOL
    

    Substitua:

    • ISSUANCE_CONFIG_NAME: o nome do recurso de configuração de emissão de certificados.
    • CA_POOL: o caminho e o nome completos do pool de ACs que você quer atribuir a esse recurso de configuração de emissão de certificados.

    Para mais informações sobre os recursos de configuração de emissão de certificados, consulte Gerenciar recursos de configuração de emissão de certificados.

Criar um certificado gerenciado pelo Google emitido pela instância do serviço de AC

Para criar um certificado gerenciado pelo Google emitido pela sua instância de serviço de AC, 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 guia Certificados, clique em Adicionar certificado.

  3. No campo Nome do certificado, insira um nome exclusivo para o certificado.

  4. Opcional: no campo Descrição, insira uma descrição para o certificado. A descrição permite identificar o certificado.

  5. Em Local, selecione Global.

  6. Em Escopo, selecione Todas as regiões.

  7. Em Tipo de certificado, selecione Criar certificado gerenciado pelo Google.

  8. Em Tipo de autoridade de certificação, selecione Particular.

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

  10. Em Selecionar uma configuração de emissão de certificados, selecione o nome do recurso de configuração de emissão de certificados que faz referência ao pool de ACs de destino.

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

  12. Clique em Criar.

    O novo certificado aparece na lista de certificados.

gcloud

Para criar um certificado gerenciado pelo Google em várias regiões com o serviço de autoridade certificadora, use o comando certificate-manager certificates create com as flags issuance-config e --scope:

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --domains="DOMAIN_NAMES" \
    --issuance-config=ISSUANCE_CONFIG_NAME \
    --scope=all-regions

Substitua:

  • CERTIFICATE_NAME: o nome do certificado.
  • DOMAIN_NAME: o nome do domínio de destino. O nome de domínio precisa ser totalmente qualificado, como myorg.example.com.
  • ISSUANCE_CONFIG_NAME: o nome do recurso de configuração de emissão de certificados que faz referência ao pool de ACs de destino.

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"],
  "issuanceConfig": "ISSUANCE_CONFIG_NAME",
  "scope": "ALL_REGIONS"
 }
}

Substitua:

  • PROJECT_ID: o ID do projeto do Google Cloud.
  • CERTIFICATE_NAME: o nome do certificado.
  • DOMAIN_NAME: o nome do domínio de destino. O nome de domínio precisa ser totalmente qualificado, como myorg.example.com.
  • ISSUANCE_CONFIG_NAME: o nome do recurso de configuração de emissão de certificados que faz referência ao pool de ACs de destino.

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

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

    Acessar o Gerenciador de certificados

  2. 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:
  domains:
  - myorg.example.com
  issuanceConfig: projects/myproject/locations/global/issuanceConfigs/myissuanceConfig
  state: ACTIVE
name: projects/myproject/locations/global/certificates/mycertificate
pemCertificate: |
  -----BEGIN CERTIFICATE-----
  [...]
  -----END CERTIFICATE-----
sanDnsnames:
  - myorg.example.com
updateTime: '2021-10-20T12:19:55.083385630Z'

Para mais etapas de solução de problemas, consulte Solução de problemas do Gerenciador de certificados.

Implantar o certificado em um balanceador de carga

Para implantar o certificado global gerenciado pelo Google, anexe-o diretamente ao proxy de destino.

Anexar o certificado diretamente ao proxy de destino

É possível anexar o certificado a um novo proxy de destino ou a um proxy de destino existente.

Para anexar o certificado a um novo proxy de destino, use o comando gcloud compute target-https-proxies create:

gcloud compute target-https-proxies create PROXY_NAME \
    --url-map=URL_MAP \
    --certificate-manager-certificates=CERTIFICATE_NAME \
    --global

Substitua:

  • PROXY_NAME: o nome do proxy de destino.
  • URL_MAP: o nome do mapa de URL. Você criou o mapa de URL quando criou o balanceador de carga.
  • CERTIFICATE_NAME: o nome do certificado.

Para anexar o 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 Proxies de destino e anote o nome dele.

gcloud compute target-https-proxies update PROXY_NAME \
    --global \
    --certificate-manager-certificates=CERTIFICATE_NAME

Depois de criar ou atualizar o proxy de destino, execute o seguinte comando para verificar ele:

gcloud compute target-https-proxies list

Solução de problemas de certificados emitidos pelo serviço de AC

Para ver as etapas de solução de problemas, consulte Problemas relacionados a certificados emitidos por uma instância do serviço de AC.

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados neste tutorial, exclua-os.

  1. Exclua o balanceador de carga e os recursos dele.

    Consulte Limpar uma configuração de balanceamento de carga

  2. Exclua o certificado gerenciado pelo Google:

    Console

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

      Acessar o Gerenciador de certificados

    2. Na guia Certificados, marque a caixa de seleção do certificado.

    3. Clique em Excluir.

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

  3. Exclua o recurso de configuração de emissão de certificados:

    Console

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

      Acessar o Gerenciador de certificados

    2. Na guia Issuance Configs, marque a caixa de seleção do recurso de configuração de emissão de certificados.

    3. Clique em Excluir.

    4. Na caixa de diálogo exibida, clique em Excluir para confirmar.

    gcloud

    gcloud certificate-manager issuance-configs delete ISSUANCE_CONFIG_NAME
    

    Substitua ISSUANCE_CONFIG_NAME pelo nome do recurso de configuração de emissão de certificado de destino.

  4. Exclua o pool de ACs.

    Para excluir o pool de AC ou desativar a última AC ativada em um pool de AC referenciado por um recurso de configuração de emissão de certificados, exclua todas as configurações de emissão de certificados que fazem referência ao pool de AC. Para mais informações, consulte Excluir um pool de AC.

A seguir