Implemente um certificado gerido pela Google regional com o serviço de autoridade de certificação

Este tutorial mostra-lhe como usar o Gestor de certificados para implementar um certificado gerido pela Google regional com o serviço de autoridade de certificação num equilibrador de carga de aplicações externo regional ou num equilibrador de carga de aplicações interno regional.

Se quiser implementar balanceadores de carga externos globais ou balanceadores de carga entre regiões, consulte o seguinte:

Objetivos

Este tutorial mostra como concluir as seguintes tarefas:

  • Crie um certificado gerido pela Google com o serviço de AC através do Gestor de certificados.
  • Implemente o certificado num balanceador de carga suportado através de 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.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

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

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  7. Para inicializar a CLI gcloud, execute o seguinte comando:

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

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

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  13. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  14. Ative a API CA Service.
  15. Crie um grupo de ACs. Tem de criar e ativar, pelo menos, uma CA neste conjunto de CAs.
  16. Tem de tomar nota do seguinte antes de seguir os passos deste tutorial:

    • Os certificados que criar com o serviço de autoridade de certificação não são publicamente fidedignos. Para emitir certificados publicamente fidedignos, crie certificados com autorização de DNS ou autorização do equilibrador de carga.
    • Se uma política de emissão de certificados estiver em vigor no conjunto de ACs de destino, o aprovisionamento de certificados pode falhar por qualquer um dos seguintes motivos:

      • A política de emissão de certificados bloqueou o certificado pedido. Neste caso, não lhe é cobrado nenhum valor porque o certificado não foi emitido.
      • A política aplicou alterações ao certificado que não são suportadas pelo Gestor de certificados. Neste caso, a faturação é feita porque o certificado foi emitido, mesmo que não seja totalmente compatível com o Gestor de certificados.
    • Os certificados TLS geridos pela Google emitidos a partir de um conjunto de ACs regionais são globais e podem ser usados em qualquer região.

    Funções necessárias

    Certifique-se de que tem as seguintes funções para concluir as tarefas neste tutorial:

    • Proprietário do Gestor de certificados (roles/certificatemanager.owner)

      Necessário para criar e gerir recursos do Gestor de certificados.

    • Administrador do balanceador de carga de computação (roles/compute.loadBalancerAdmin) ou administrador de rede de computação (roles/compute.networkAdmin)

      Obrigatório para criar e gerir o proxy de destino HTTPS.

    • Administrador de serviço de AC (roles/privateca.admin)

      Necessário para realizar ações no serviço de CA.

    Para mais informações, consulte o seguinte:

    Crie o balanceador de carga

    Este tutorial pressupõe que já criou e configurou os back-ends, as verificações de estado, os serviços de back-end e os mapas de URL do balanceador de carga. Tome nota do nome do mapa de URLs, porque vai precisar dele mais tarde neste tutorial.

    Configure a integração do serviço de AC com o Gestor de certificados

    Para integrar o serviço de AC com o gestor de certificados, siga estes passos:

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

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

      Substitua PROJECT_ID pelo ID do projeto de destino Google Cloud .

      O comando devolve o nome da identidade do serviço criada. Veja o exemplo seguinte:

      service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com
      
    2. Conceda à conta de serviço do Gestor de certificados a função de requerente de certificado do serviço de AC (roles/privateca.certificateRequester) no conjunto de AC de destino:

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

      Substitua o seguinte:

      • CA_POOL: o ID do grupo de ACs de destino.
      • LOCATION: a localização Google Cloud de destino.
      • SERVICE_ACCOUNT: o nome completo da conta de serviço que criou no passo 1.
    3. Crie um recurso de configuração de emissão de certificados para o seu conjunto de ACs:

      Consola

      1. Na Google Cloud consola, aceda ao separador Issuance configs na página Certificate Manager.

        Aceda ao Gestor de certificados

      2. Clique em Criar. É apresentada a página Crie uma configuração de emissão de certificados.

      3. No campo Nome, introduza um nome exclusivo para a configuração de emissão do certificado.

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

      5. Para Localização, selecione Regional.

        Para Região, selecione a mesma região que o seu certificado e conjunto de CAs.

      6. Opcional: no campo Duração total, especifique a duração total do certificado emitido em dias. O valor tem de estar compreendido entre 21 e 30 dias (inclusive).

      7. Opcional: em Percentagem do período de tempo de rotação, especifique a percentagem do período de tempo do certificado quando o respetivo processo de renovação começa. Para encontrar o intervalo de valores válidos, consulte a percentagem do período de duração e da janela de rotação.

      8. Opcional: na lista Algoritmo de chave, selecione o algoritmo de chave a usar quando gerar a chave privada.

      9. Na lista CA pool, selecione o nome do CA pool a atribuir a este recurso de configuração de emissão de certificados.

      10. No campo Etiquetas, especifique as etiquetas a associar ao certificado. Para adicionar uma etiqueta, clique em Adicionar etiqueta e especifique uma chave e um valor para a etiqueta.

      11. Clique em Criar.

      gcloud

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

      Substitua o seguinte:

      • ISSUANCE_CONFIG_NAME: o nome do recurso de configuração de emissão do certificado.
      • CA_POOL: o caminho e o nome completos do recurso CA pool que quer atribuir a este recurso de configuração de emissão de certificados.
      • LOCATION: a localização Google Cloud de destino. Tem de especificar a mesma localização que o conjunto de ACs e o certificado.

      Para mais informações sobre os recursos de configuração da emissão de certificados, consulte o artigo Faça a gestão dos recursos de configuração da emissão de certificados.

    Crie um certificado gerido pela Google emitido pela sua instância do serviço de AC

    Para criar um certificado gerido pela Google emitido pela sua instância do serviço de AC, faça o seguinte:

    Consola

    1. Na Google Cloud consola, aceda à página Gestor de certificados.

      Aceda ao Gestor de certificados

    2. No separador Certificados, clique em Adicionar certificado.

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

    4. Opcional: no campo Descrição, introduza uma descrição do certificado. A descrição permite-lhe identificar o certificado.

    5. Para Localização, selecione Regional.

    6. Na lista Região, selecione a sua região.

    7. Para Tipo de certificado, selecione Criar certificado gerido pela Google.

    8. Para Tipo de autoridade de certificação, selecione Privado.

    9. No campo Nomes de domínios, especifique uma lista de nomes de domínios do certificado separados por vírgulas. Cada nome do domínio tem de ser um nome do domínio totalmente qualificado, como myorg.example.com.

    10. Para 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 conjunto de AC de destino.

    11. No campo Etiquetas, especifique as etiquetas a associar ao certificado. Para adicionar uma etiqueta, clique em Adicionar etiqueta e especifique uma chave e um valor para a etiqueta.

    12. Clique em Criar.

      O novo certificado é apresentado na lista de certificados.

    gcloud

    Para criar um certificado gerido pela Google regional com o Certificate Authority Service, use o comando certificate-manager certificates create com a flag issuance-config:

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

    Substitua o seguinte:

    • CERTIFICATE_NAME: o nome do certificado.
    • DOMAIN_NAME: o nome do domínio de destino. O nome do domínio tem de ser um nome do domínio 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 conjunto de ACs de destino.
    • LOCATION: a localização Google Cloud de destino. Tem de especificar a mesma localização que o conjunto de ACs, o recurso de configuração de emissão de certificados e o certificado gerido.

    API

    Crie o certificado fazendo um pedido POST ao método certificates.create da seguinte forma:

    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 o seguinte:

    • PROJECT_ID: o ID do projeto Google Cloud .
    • LOCATION: a localização Google Cloud de destino. Tem de especificar a mesma localização que o conjunto de ACs, o recurso de configuração de emissão de certificados e o certificado gerido.
    • CERTIFICATE_NAME: o nome do certificado.
    • DOMAIN_NAME: o nome do domínio de destino. O nome do domínio tem de ser um nome do domínio 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 conjunto de ACs de destino.

    Valide o estado do certificado

    Antes de implementar um certificado num equilibrador de carga, verifique se está ativo. O estado do certificado pode demorar vários minutos a mudar para ACTIVE.

    Consola

    1. Na Google Cloud consola, aceda à página Gestor de certificados.

      Aceda ao Gestor de certificados

    2. No separador Certificados, verifique a coluna Estado do certificado.

    gcloud

    Para verificar o estado do certificado, execute o seguinte comando:

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

    Substitua o seguinte:

    • CERTIFICATE_NAME: o nome do certificado.
    • LOCATION: a localização Google Cloud de destino onde criou o certificado gerido pela Google.

    O resultado é semelhante ao seguinte:

    createTime: '2021-10-20T12:19:53.370778666Z'
    expireTime: '2022-05-07T05:03:49Z'
    managed:
      domains:
      - myorg.example.com
      issuanceConfig: projects/myproject/locations/LOCATION/issuanceConfigs/myissuanceConfig
      state: ACTIVE
    name: projects/myproject/locations/LOCATION/certificates/mycertificate
    pemCertificate: |
      -----BEGIN CERTIFICATE-----
      [...]
      -----END CERTIFICATE-----
    sanDnsnames:
      - myorg.example.com
    updateTime: '2021-10-20T12:19:55.083385630Z'
    

    Para ver mais passos de resolução de problemas, consulte o artigo Resolva problemas do Gestor de certificados.

    Implemente o certificado gerido pela Google regional num balanceador de carga

    Para implementar o certificado gerido pela Google regional, anexe-o diretamente ao proxy de destino.

    Anexe o certificado diretamente ao proxy de destino

    Pode 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 gcloud compute target-https-proxies createcomando:

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

    Substitua o seguinte:

    • PROXY_NAME: o nome do proxy de destino.
    • CERTIFICATE_NAME: o nome do certificado.
    • URL_MAP: o nome do mapa de URLs. Criou o mapa de URLs quando criou o balanceador de carga.
    • LOCATION: a localização Google Cloud de destino onde quer criar o proxy HTTPS de destino.

    Para anexar um certificado a um proxy HTTPS de destino existente, use o gcloud compute target-https-proxies update comando. Se não souber o nome do proxy de destino existente, aceda à página Proxies de destino e anote o nome do proxy de destino.

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

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

    gcloud compute target-https-proxies list
    

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

    Para ver os passos de resolução de problemas, consulte o artigo Problemas relacionados com certificados emitidos por uma instância do serviço de AC.

    Limpar

    Para evitar incorrer em custos na sua conta do Google Cloud relativos aos recursos usados neste tutorial, elimine-os.

    1. Elimine o balanceador de carga e os respetivos recursos.

      Consulte o artigo Limpe uma configuração de equilíbrio de carga.

    2. Elimine o certificado gerido pela Google:

      Consola

      1. Na Google Cloud consola, aceda à página Gestor de certificados.

        Aceda ao Gestor de certificados

      2. No separador Certificados, selecione a caixa de verificação do certificado.

      3. Clique em Eliminar.

      4. Na caixa de diálogo apresentada, clique em Eliminar para confirmar.

      gcloud

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

      Substitua o seguinte:

      • CERTIFICATE_NAME: o nome do certificado.
      • LOCATION: a localização Google Cloud de destino.
    3. Elimine o recurso de configuração de emissão de certificados:

      Consola

      1. Na Google Cloud consola, aceda ao separador Issuance configs na página Certificate Manager.

        Aceda ao Gestor de certificados

      2. Selecione a caixa de verificação do recurso de configuração de emissão que quer eliminar.

      3. Clique em Eliminar.

      4. Na caixa de diálogo apresentada, clique em Eliminar para confirmar.

      gcloud

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

      Substitua o seguinte:

      • ISSUANCE_CONFIG_NAME: o nome do recurso de configuração de emissão de certificados que faz referência ao conjunto de ACs de destino.
      • LOCATION: a localização Google Cloud de destino.
    4. Elimine o conjunto de CA.

      Para eliminar o conjunto de ACs ou desativar a última AC ativada num conjunto de ACs referenciado por uma configuração de emissão de certificados, elimine todas as configurações de emissão de certificados que referenciam o conjunto de ACs. Para mais informações, consulte o artigo Elimine um conjunto de ACs.

    O que se segue?