Revogue um certificado

Este documento descreve como revogar um certificado através do serviço de autoridade de certificação. A revogação de um certificado invalida-o antes da data de expiração, o que impede a sua utilização para autenticação. Pode revogar um certificado se a chave privada estiver comprometida, o certificado for substituído por um novo certificado ou o certificado já não for necessário (por exemplo, quando o serviço para o qual o certificado foi emitido for desativado).

Este documento destina-se a públicos-alvo no grupo de operadores de aplicações, como programadores de aplicações ou cientistas de dados, que gerem os ciclos de vida dos certificados nos respetivos projetos. Para mais informações, consulte a documentação sobre públicos-alvo para GDC com isolamento de ar.

Acerca da revogação de certificados

O serviço de AC suporta a revogação de certificados através da publicação de listas de revogação de certificados (LRCs). Uma CRL é uma lista de números de série de certificados que foram revogados e já não são fidedignos. Por predefinição, é publicada uma nova CRL 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 serviço de AC incluem uma extensão denominada Ponto de distribuição de CRL (CDP). Esta extensão contém o URL onde pode encontrar e transferir a LRC desse certificado. As aplicações cliente usam este URL para obter a CRL e verificar se o número de série de um certificado está presente. Se o número de série aparecer na lista, o certificado é considerado inválido e a ligação tem de ser rejeitada.

Antes de começar

Antes de poder revogar um certificado, certifique-se de que tem as autorizações necessárias e um ficheiro kubeconfig.

Autorizações necessárias

Para receber as autorizações necessárias para revogar um certificado, peça ao administrador do IAM da sua organização que lhe conceda a função de gestor de operações do serviço de AC (certificate-authority-service-operation-manager). Para mais informações acerca das funções, consulte Definições de funções.

Obtenha o ficheiro kubeconfig

Para executar comandos no servidor da API Management, faça o seguinte:

  1. Inicie sessão e gere o ficheiro kubeconfig para o servidor da API Management, se não tiver um.

  2. Use o caminho para o ficheiro kubeconfig do servidor da API Management para substituir MANAGEMENT_API_SERVER_KUBECONFIG nestas instruções.

Revogue um certificado

O método de revogação de um certificado depende de a autoridade de certificação (AC) emissora ter o modo ACME ativado. Depois de revogar um certificado, o respetivo número de série é apresentado em todas as LRCs futuras dessa AC até o certificado expirar.

Revogue um certificado de uma AC compatível com o ACME

Cada AC com capacidade de ACME expõe um URL do servidor ACME exclusivo no respetivo estado assim que estiver pronto. Para revogar um certificado de uma AC compatível com ACME, tem de usar uma ferramenta de cliente ACME para interagir com este URL através do protocolo ACME.

Revogue um certificado de uma AC compatível com o ACME:

  1. Obtenha o URL do servidor ACME para a sua CA:

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

    Substitua o seguinte:

    • MANAGEMENT_API_SERVER_KUBECONFIG: O caminho para o ficheiro kubeconfig do servidor da API Management.
    • CA_NAME: o nome da CA ativada para ACME (raiz ou subordinada).
    • USER_PROJECT_NAMESPACE: o espaço de nomes do projeto.
  2. Use o URL obtido com a ferramenta de cliente ACME da sua escolha para emitir um pedido de revogação. Consulte a documentação do seu cliente ACME específico para ver detalhes.

Revogue um certificado de uma AC com o ACME desativado

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

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

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

    • REVOKE_CERT_REQ_NAME: o nome definido pelo utilizador para o pedido de revogação.
    • USER_PROJECT_NAMESPACE: o espaço de nomes do projeto.
    • CERT_REQ_NAME: o nome do recurso CertificateRequest associado ao certificado que quer revogar.
    • REASON: o motivo da revogação. Seguem-se os motivos 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 ficheiro kubeconfig do servidor da API Management.

  3. Verifique a prontidão do pedido 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 o seguinte:

    • MANAGEMENT_API_SERVER_KUBECONFIG: O caminho para o ficheiro kubeconfig do servidor da API Management.
    • USER_PROJECT_NAMESPACE: o espaço de nomes do projeto.
    • REVOKE_CERT_REQ_NAME: o nome do pedido de revogação.

    O resultado tem um aspeto semelhante ao seguinte:

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

    O processo está concluído e o número de série do certificado é adicionado à CRL gerada seguinte.

Liste os pedidos de certificados revogados

Apresenta todos os recursos RevokeCertificateRequest num espaço de nomes do projeto:

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

Substitua o seguinte:

  • MANAGEMENT_API_SERVER_KUBECONFIG: O caminho para o ficheiro kubeconfig do servidor da API Management.
  • USER_PROJECT_NAMESPACE: o espaço de nomes do projeto.

O resultado tem um aspeto semelhante ao seguinte:

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