Implantar um certificado regional gerenciado pelo Google com o Certificate Authority Service


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

Objetivos

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

  • Crie um certificado gerenciado pelo Google com o serviço de CA usando o Gerenciador de certificados.
  • 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. 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: necessário para criar e gerenciar o proxy de destino HTTPS.
    • Administrador de serviço de CA: necessário para executar ações no serviço de CA.

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

  3. Ativar a API Certificate Manager

  4. Ative a API CA Service.

  5. Criar um pool de CA. Você precisa criar e ativar pelo menos uma AC nesse pool de ACs.

Configurar a integração do CA Service com o Gerenciador de certificados

Configure o Gerenciador de certificados para integração com o serviço de CA da seguinte maneira:

  1. Crie uma conta de serviço do Gerenciador de certificados no projeto de destino do Google Cloud:

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

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

O comando retorna o nome da identidade do serviço criada, conforme mostrado no exemplo a seguir:

service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com
  1. Conceda à conta de serviço do Gerenciador de certificados o papel de solicitante de certificado de serviço de CA no pool de CAs de destino da seguinte maneira:

    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 de destino do Google Cloud. Especifique o mesmo local que o pool de ACs, o recurso de configuração de emissão de certificados e o certificado gerenciado.
    • SERVICE_ACCOUNT: o nome completo da conta de serviço que você criou na etapa 1.
  2. Crie um recurso de configuração para emissão de certificados para o pool de AC:

    gcloud beta certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \
        --ca-pool=CA_POOL \
        --location=LOCATION> \
        [--lifetime=CERTIFICATE_LIFETIME] \
        [--rotation-window-percentage=ROTATION_WINDOW_PERCENTAGE] \
        [--key-algorithm=KEY_ALGORITHM]
    

    Substitua:

    • ISSUANCE_CONFIG_NAME: o nome exclusivo do recurso de configuração de emissão de certificado.
    • CA_POOL: o caminho completo do recurso e o nome do pool de AC que você quer atribuir a este recurso de configuração de emissão de certificado.
    • LOCATION: o local de destino do Google Cloud. Especifique o mesmo local que o pool de ACs, o recurso de configuração de emissão de certificados e o certificado gerenciado.
    • CERTIFICATE_LIFETIME: a vida útil do certificado em dias. Os valores válidos são de 21 a 30 dias no formato de duração padrão. O padrão é 30 dias (30D). Essa configuração é opcional.
    • ROTATION_WINDOW_PERCENTAGE: a porcentagem do ciclo de vida do certificado em que uma renovação é acionada. O padrão é 66%. Defina a porcentagem da janela de rotação em relação à ciclo de vida do certificado para que a renovação ocorra pelo menos sete dias após a emissão e pelo menos sete dias antes da expiração. Essa configuração é opcional.
    • KEY_ALGORITHM: o algoritmo de criptografia usado para gerar a chave privada. Os valores válidos são ecdsa-p256 ou rsa-2048. O padrão é rsa-2048. Essa configuração é opcional.

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

Criar um certificado regional gerenciado pelo Google

Crie um certificado regional gerenciado pelo Google emitido pelo serviço de CA usando o recurso de configuração de emissão de certificado criado na etapa anterior:

gcloud

Execute este comando:

gcloud beta certificate-manager certificates create CERTIFICATE_NAME \
    --domains="DOMAIN_NAMES" \
    --issuance-config="ISSUANCE_CONFIG_NAME" \
    --location="LOCATION"

Substitua:

  • CERTIFICATE_NAME: um nome exclusivo do certificado.
  • DOMAIN_NAMES: uma lista delimitada por vírgulas dos domínios de destino do certificado. Cada 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 certificado que faz referência ao pool de ACs de destino.
  • LOCATION: o local de destino do Google Cloud. Especifique o mesmo local que o pool de ACs, o recurso de configuração de emissão de certificados e o certificado gerenciado.

API

Crie o certificado fazendo uma solicitação POST ao método certificates.create da seguinte maneira:

POST /v1/projects/PROJECT_ID/locations/LOCATION/certificates?certificate_id=CERTIFICATE_NAME"
{
 name: "/projects/example-project/locations/LOCATION/certificates/my-cert",
 "managed": {
  "domains": ["DOMAIN_NAME"],
  "issuanceConfig": "ISSUANCE_CONFIG_NAME",
 },
}

Substitua:

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

Para uma visão geral do processo de implantação do certificado, consulte Visão geral da implantação.

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ários minutos para o estado do certificado mudar para ACTIVE.

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

Substitua:

  • CERTIFICATE_NAME: um nome exclusivo do certificado.
  • LOCATION: o local de destino do Google Cloud. Especifique o mesmo local que o pool de ACs, o recurso de configuração de emissão de certificados e o certificado gerenciado.

O comando retorna uma saída semelhante a esta:

certificatePem: myPEM
createTime: '2021-10-20T12:19:53.370778666Z'
expireTime: '2022-05-07T05:03:49Z'
managed:
domains:
-   myorg.example.com
issuanceConfig: projects/myproject/locations/mylocation/issuanceConfigs/myissuanceConfig
state: ACTIVE
name: projects/myproject/locations/mylocation/certificates/mycertificate
scope: myScope
subjectAlternativeNames:- - myorg.example.com
updateTime: '2021-10-20T12:19:55.083385630Z'

Implantar o certificado regional gerenciado pelo Google em um balanceador de carga

Para implantar o certificado regional gerenciado pelo Google, crie um proxy de destino HTTPS e anexe o certificado a ele.

Criar o proxy de destino HTTPS

Para criar o proxy de destino HTTPS e anexar o certificado, execute o seguinte comando:

gcloud compute target-https-proxies create 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. Você criou o mapa de URL quando criou o balanceador de carga.
  • REGION: a região em que você está criando o proxy de destino HTTPS.
  • CERTIFICATE_NAME: o nome do certificado.

Para verificar se o proxy de destino foi criado, execute o seguinte comando:

gcloud compute list target-https-proxies

Criar uma regra de encaminhamento

Configure uma regra de encaminhamento e conclua a configuração do balanceador de carga.

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 de destino do Google Cloud.
  1. Exclua o recurso de configuração para emissão de certificados:

    gcloud certificate-manager issuance-configs delete ISSUANCE_CONFIG_NAME
        --location=LOCATION
    

Substitua:

  • CERTIFICATE_NAME: o nome do certificado
  • LOCATION: o local de destino do Google Cloud.
  1. Exclua o pool de ACs conforme descrito em Excluir um pool de ACs.

    Lembre-se de que, para desativar a última AC ativada no pool de ACs referenciada no recurso de configuração de emissão de certificados ou para excluir o pool de ACs referenciado completamente, é necessário excluir primeiro todos os recursos de configuração de emissão de certificados que fazem referência a esse pool de ACs.

Solução de problemas

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

A seguir