Implante 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 serviço de AC para um balanceador de carga de aplicativo externo regional ou para um do 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 CA Service usando 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 de certificados, consulte Visão geral da implantação.

Antes de começar

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Verifique se você tem os seguintes papéis 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 HTTPS proxy de destino.
    • Administrador de serviço de CA: necessário para executar ações em CA Service.

    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. É necessário criar e ativar pelo menos uma AC neste pool de ACs.

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

Configure o Gerenciador de certificados para se integrar ao serviço de AC da seguinte maneira:

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

    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, conforme mostrado no exemplo a seguir:

service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com
  1. Conceda à conta de serviço do Certificate Manager a função de solicitante de certificado do serviço de CA no pool de AC 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 AC de destino.
    • LOCATION: o local de destino do Google Cloud. Você especificar o mesmo local do pool de ACs, da emissão de certificados recurso de configuração e certificado gerenciado.
    • SERVICE_ACCOUNT: o nome completo da conta de serviço que você criou na primeira etapa.
  2. Crie um recurso de configuração de emissão de certificados para o pool de ACs:

    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 de configuração da emissão de certificados.
    • CA_POOL: o caminho completo do recurso e o nome da AC. pool que você quer atribuir a este recurso de configuração de emissão de certificados.
    • LOCATION: o local de destino do Google Cloud. Você especificar o mesmo local do pool de ACs, da emissão de certificados recurso de configuração e 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 de 100%. Você deve definir a porcentagem da janela de rotação em relação à ciclo de vida do certificado para que a renovação ocorra por pelo menos sete dias após a emissão do certificado e pelo menos sete dias antes dele expira. 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 gerenciado pelo Google regional emitido pelo seu serviço de AC usando o recurso de configuração de emissão de certificados criado na etapa anterior:

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. Descrição ajuda 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 certificado gerenciado pelo Google.

  9. Em Tipo de autoridade certificadora, escolha Particular.

  10. Especifique os Nomes de domínio do certificado. Insira um valor delimitado por vírgulas lista 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 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.

  12. Especifique um rótulo para associar ao certificado. Você pode adicionar mais de um rótulo, se necessário. Para adicionar um marcador, clique no Adicionar rótulo e especifique um key e um value para o rótulo.

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

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 do destino. domínios neste certificado. Cada nome de domínio precisa ser um nome de domínio totalmente qualificado, como myorg.example.com.
  • ISSUANCE_CONFIG_NAME: o nome do certificado. recurso de configuração de emissão que faz referência ao pool de ACs de destino.
  • LOCATION: o local de destino do Google Cloud. Você especificar o mesmo local do pool de ACs, da emissão de certificados recurso de configuração e 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. É necessário especificar o mesmo local do pool de ACs, do recurso de configuração de emissão de certificados e do certificado gerenciado.
  • CERTIFICATE_NAME: um nome exclusivo do certificado.
  • DOMAIN_NAME: o domínio de destino deste certificado. O nome de domínio precisa ser totalmente qualificado, como example.com, www.example.com.
  • ISSUANCE_CONFIG_NAME: o nome do certificado. recurso de configuração de emissão que faz referência ao pool de ACs de destino.

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

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 que o estado do certificado seja alterado 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. É necessário especificar o mesmo local do pool de ACs, do recurso de configuração de emissão de certificados e do certificado gerenciado.

O comando retorna uma saída semelhante a esta:

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
pemCertificate: |
  -----BEGIN CERTIFICATE-----
  [...]
  -----END CERTIFICATE-----
sanDnsnames:
  -   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 URLs quando você 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 target-https-proxies list

Criar uma regra de encaminhamento

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

Limpar

Para reverter as mudanças feitas neste tutorial, siga estas etapas:

  1. 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 \
        --location=LOCATION
    

    Substitua:

    • CERTIFICATE_NAME: o nome do certificado.
    • LOCATION: o local de destino do Google Cloud
  2. 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 configuração de emissão.

    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 \
        --location=LOCATION
    

    Substitua:

    • ISSUANCE_CONFIG_NAME: o nome da configuração de emissão
    • LOCATION: o local de destino do Google Cloud.
  3. Exclua o pool de ACs conforme descrito em Excluir uma AC. pool.

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

Solução de problemas

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

A seguir