Revogar um certificado

Neste documento, descrevemos como revogar um certificado usando o Certificate Authority Service. A revogação de um certificado o invalida antes da data de validade, impedindo que ele seja usado para autenticação. Você pode revogar um certificado se a chave privada for comprometida, se o certificado for substituído por um novo ou se ele não for mais necessário (por exemplo, quando o serviço para o qual o certificado foi emitido for desativado).

Este documento é destinado a públicos-alvo do grupo de operadores de aplicativos, como desenvolvedores de aplicativos ou cientistas de dados, que gerenciam ciclos de vida de certificados no projeto. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.

Sobre a revogação de certificados

O CA Service é compatível com a revogação de certificados ao publicar listas de revogação de certificados (CRLs, na sigla em inglês). Uma CRL é uma lista de números de série de certificados que foram revogados e não são mais confiáveis. Por padrão, uma nova CRL é publicada a cada 15 minutos. Além disso, qualquer revogação de certificado bem-sucedida aciona automaticamente a geração de uma nova CRL.

Os certificados emitidos pelo CA Service incluem uma extensão chamada ponto de distribuição de CRL (CDP, na sigla em inglês). Essa extensão contém o URL em que você pode encontrar e fazer o download da CRL desse certificado. Os aplicativos cliente usam esse URL para buscar a CRL e verificar se um número de série de certificado está presente. Se o número de série aparecer na lista, o certificado será considerado inválido, e a conexão precisará ser rejeitada.

Antes de começar

Antes de revogar um certificado, solicite as permissões necessárias e prepare o ambiente.

Solicitar papéis do IAM

Para revogar certificados e visualizar solicitações de revogação, entre em contato com o admin. da organização do IAM para solicitar o papel de Gerente de operações do CA Service (certificate-authority-service-operation-manager) no namespace do projeto da autoridade certificadora.

Preparar o ambiente

Revogar um certificado

O método para revogar um certificado depende de a autoridade de certificação (CA) emissora ter o modo ACME ativado. Depois que você revoga um certificado, o número de série dele aparece em todas as CRLs futuras dessa CA até que o certificado expire.

Revogar um certificado de uma CA com ACME ativado

Cada AC que aceita o ACME expõe um URL de servidor ACME exclusivo no status quando está pronta. Para revogar um certificado de uma CA compatível com ACME, use uma ferramenta de cliente ACME para interagir com esse URL usando o protocolo ACME.

Revogue um certificado de uma CA com ACME:

  1. Busque o URL do servidor ACME para sua CA:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
      get certificateauthorities CA_NAME \
      -n USER_PROJECT_NAMESPACE \
      -ojson | jq -r '.status.acme.uri'
    

    Substitua:

    • MANAGEMENT_API_SERVER_KUBECONFIG: o caminho para o arquivo kubeconfig do servidor de API Management.
    • CA_NAME: o nome da AC com ACME ativado (raiz ou subordinada).
    • USER_PROJECT_NAMESPACE: o namespace do projeto.
  2. Use o URL recebido com a ferramenta de cliente ACME de sua escolha para emitir uma solicitação de revogação. Consulte a documentação do seu cliente ACME específico para mais detalhes.

Revogar um certificado de uma CA com ACME desativado

Se o modo ACME estiver desativado na CA, revogue um certificado criando e aplicando um recurso personalizado RevokeCertificateRequest:

  1. Crie um arquivo YAML de recurso personalizado RevokeCertificateRequest (como revoke-cert-request.yaml):

    apiVersion: pki.security.gdc.goog/v1
    kind: RevokeCertificateRequest
    metadata:
      name: REVOKE_CERT_REQ_NAME
      namespace: USER_PROJECT_NAMESPACE
    spec:
      certificateRequestRef:
        name: CERT_REQ_NAME
        namespace: USER_PROJECT_NAMESPACE
      reason: REASON
    

    Substitua:

    • REVOKE_CERT_REQ_NAME: o nome definido pelo usuário para a solicitação de revogação.
    • USER_PROJECT_NAMESPACE: o namespace do projeto.
    • CERT_REQ_NAME: o nome do recurso CertificateRequest associado ao certificado que você quer revogar.
    • REASON: o motivo da revogação. Os seguintes motivos são válidos: Unspecified, KeyCompromise, CaCompromise, AffiliationChanged, Superseded, CessationOfOperation, CertificateHold, RemoveFromCrl, PrivilegeWithdrawn e AaCompromise.
  2. Aplique o recurso personalizado:

    kubectl apply -f revoke-cert-request.yaml --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG
    

    Substitua MANAGEMENT_API_SERVER_KUBECONFIG pelo caminho para o arquivo kubeconfig do servidor de API Management.

  3. Verifique a prontidão da solicitação de revogação do certificado:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
      -n USER_PROJECT_NAMESPACE \
      get revokecertificaterequest.pki.security.gdc.goog/REVOKE_CERT_REQ_NAME \
      -ojson | jq -r ' .status.conditions[] | select( .type as $id | "Ready" | index($id))'
    

    Substitua:

    • MANAGEMENT_API_SERVER_KUBECONFIG: o caminho para o arquivo kubeconfig do servidor de API Management.
    • USER_PROJECT_NAMESPACE: o namespace do projeto.
    • REVOKE_CERT_REQ_NAME: o nome da solicitação de revogação.

    A saída será assim:

    {
      "lastTransitionTime": "2025-08-19T23:20:22Z",
      "message": "RevokeCertificateRequest reconciled",
      "observedGeneration": 1,
      "reason": "Ready",
      "status": "True",
      "type": "Ready"
    }
    

    O processo é concluído, e o número de série do certificado é adicionado à próxima CRL gerada.

Listar solicitações de certificado revogadas

Liste todos os recursos RevokeCertificateRequest em um namespace de projeto:

kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
  -n USER_PROJECT_NAMESPACE \
  get revokecertificaterequests

Substitua:

  • MANAGEMENT_API_SERVER_KUBECONFIG: o caminho para o arquivo kubeconfig do servidor de API Management.
  • USER_PROJECT_NAMESPACE: o namespace do projeto.

A saída será assim:

NAMESPACE    NAME                      READY   AGE
foo          revoke-cert-req           True    30s