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 respetiva data de validade, impedindo que seja usado 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 deixar de ser necessário (por exemplo, quando o serviço para o qual o certificado foi emitido é 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 o artigo Públicos-alvo da documentação isolada do GDC.

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 LRC é 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 LRC a cada 15 minutos. Além disso, qualquer revogação de certificado bem-sucedida aciona automaticamente a geração de uma nova LRC.

Os certificados emitidos pelo serviço de AC incluem uma extensão denominada Ponto de distribuição de LRC (CDP). Esta extensão contém o URL onde pode encontrar e transferir a LRC desse certificado. As aplicações de cliente usam este URL para obter a LRC 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, tem de pedir as autorizações necessárias e preparar o seu ambiente.

Peça funções de IAM

Para revogar certificados e ver pedidos de revogação, contacte o administrador de IAM da organização para pedir a função Gestor de operações do serviço de AC (certificate-authority-service-operation-manager) no espaço de nomes do projeto da autoridade de certificação.

Prepare o seu ambiente

Revogue um certificado

O método para revogar 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 aparece em todas as LRCs futuras dessa AC até o certificado expirar.

Revogue um certificado de uma AC com o ACME ativado

Cada AC com o ACME ativado expõe um URL do servidor ACME único no respetivo estado assim que estiver pronta. Para revogar um certificado de uma AC com o ACME ativado, tem de usar uma ferramenta de cliente ACME para interagir com este URL através do protocolo ACME.

Revogue um certificado de uma AC com o ACME ativado:

  1. Obtenha o URL do servidor ACME da sua AC:

    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 de gestão.
    • CA_NAME: o nome da AC com o ACME ativado (raiz ou subordinada).
    • USER_PROJECT_NAMESPACE: o espaço de nomes do projeto.
  2. Use o URL obtido com a ferramenta de cliente ACME à 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 recurso personalizado RevokeCertificateRequest:

  1. Crie um ficheiro 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 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. Os seguintes são 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 de gestão.

  3. Valide a prontidão do pedido de revogação de 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 de gestão.
    • 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 à próxima LRC gerada.

Liste os pedidos de certificados revogados

Liste 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 de gestão.
  • 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