Neste documento, descrevemos como revogar um certificado usando o Certificate Authority Service. A revogação invalida um certificado antes da data de expiração, 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 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 isolada do GDC.
Sobre a revogação de certificados
O serviço de CA oferece suporte à revogação de certificados publicando listas de revogação de certificados (CRLs). 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 serviço de CA incluem uma extensão chamada ponto de distribuição da lista de revogação de certificados (CRL, na sigla em inglês) (CDP, na sigla em inglês). Essa extensão contém o URL em que você pode encontrar e baixar a CRL desse certificado. Os aplicativos cliente usam esse URL para buscar 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 será considerado inválido, e a conexão precisará ser rejeitada.
Antes de começar
Antes de revogar um certificado, verifique se você tem as permissões necessárias e um arquivo kubeconfig.
Permissões necessárias
Para receber as permissões necessárias para revogar um certificado, peça ao administrador do IAM da organização para conceder a você a função de gerente de operações do serviço de AC (certificate-authority-service-operation-manager). Para mais informações
sobre papéis, consulte
Definições de papéis.
Receber o arquivo kubeconfig
Para executar comandos no servidor da API Management, faça o seguinte:
Faça login e gere o arquivo kubeconfig para o servidor da API Management se você não tiver um.
Use o caminho para o arquivo kubeconfig do servidor da API Management para substituir
MANAGEMENT_API_SERVER_KUBECONFIGnestas instruções.
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 de revogar 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 compatível com ACME
Cada CA habilitada para ACME expõe um URL de servidor ACME exclusivo no status dela quando está pronta. Para revogar um certificado de uma CA habilitada para ACME, use uma ferramenta de cliente ACME para interagir com esse URL usando o protocolo ACME.
Revogar um certificado de uma CA compatível com ACME:
Extraia o URL do servidor ACME da 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 da API Management.CA_NAME: o nome da CA ativada para ACME (raiz ou subordinada).USER_PROJECT_NAMESPACE: o namespace do projeto.
Use o URL obtido com a ferramenta de cliente ACME da 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 desativada para ACME
Se o modo ACME estiver desativado na CA, revogue um certificado criando e
aplicando um recurso personalizado RevokeCertificateRequest:
Crie um arquivo YAML de recurso personalizado
RevokeCertificateRequest(comorevoke-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: REASONSubstitua:
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 recursoCertificateRequestassociado 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,PrivilegeWithdrawneAaCompromise.
Aplique o recurso personalizado:
kubectl apply -f revoke-cert-request.yaml --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIGSubstitua MANAGEMENT_API_SERVER_KUBECONFIG pelo caminho para o arquivo kubeconfig do servidor da API Management.
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 da 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 do 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 da API Management.USER_PROJECT_NAMESPACE: o namespace do projeto.
A saída será assim:
NAMESPACE NAME READY AGE
foo revoke-cert-req True 30s