Questo documento descrive come revocare un certificato utilizzando Certificate Authority Service. La revoca di un certificato lo invalida prima della data di scadenza, impedendone l'utilizzo per l'autenticazione. Puoi revocare un certificato se la chiave privata è compromessa, se il certificato è sostituito da un nuovo certificato o se il certificato non è più necessario (ad esempio quando il servizio per cui è stato emesso il certificato viene ritirato).
Questo documento è destinato ai segmenti di pubblico all'interno del gruppo di operatori di applicazioni, ad esempio sviluppatori di applicazioni o data scientist, che gestiscono i cicli di vita dei certificati all'interno del loro progetto. Per saperne di più, consulta la documentazione relativa ai segmenti di pubblico per GDC air-gap.
Informazioni sulla revoca dei certificati
CA Service supporta la revoca dei certificati pubblicando gli elenchi di revoche dei certificati (CRL). Una CRL è un elenco di numeri di serie di certificati che sono stati revocati e non sono più considerati attendibili. Per impostazione predefinita, viene pubblicata una nuova CRL ogni 15 minuti. Inoltre, ogni revoca di certificato riuscita attiva automaticamente la generazione di un nuovo elenco revoche certificati.
I certificati emessi da CA Service includono un'estensione chiamata punto di distribuzione dell'elenco revoche certificati (CRL). Questa estensione contiene l'URL in cui puoi trovare e scaricare l'elenco revoche certificati per quel certificato. Le applicazioni client utilizzano questo URL per recuperare la CRL e verificare se è presente il numero di serie di un certificato. Se il numero di serie viene visualizzato nell'elenco, il certificato viene considerato non valido e la connessione deve essere rifiutata.
Prima di iniziare
Prima di poter revocare un certificato, assicurati di disporre delle autorizzazioni richieste e di un file kubeconfig.
Autorizzazioni obbligatorie
Per ottenere le autorizzazioni necessarie per revocare un certificato, chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo CA Service Operation Manager (certificate-authority-service-operation-manager). Per ulteriori informazioni sui ruoli, consulta Definizioni dei ruoli.
Recupera il file kubeconfig
Per eseguire comandi sul server dell'API Management, procedi nel seguente modo:
Accedi e genera il file kubeconfig per il server API Management se non ne hai uno.
Utilizza il percorso del file kubeconfig del server API di gestione per sostituire
MANAGEMENT_API_SERVER_KUBECONFIGin queste istruzioni.
Revocare un certificato
Il metodo per revocare un certificato dipende dal fatto che l'autorità di certificazione (CA) che lo ha emesso abbia attivato la modalità ACME. Dopo aver revocato un certificato, il relativo numero di serie viene visualizzato in tutti gli elenchi revoche certificati futuri per la CA fino alla scadenza del certificato.
Revocare un certificato da una CA abilitata ad ACME
Ogni CA abilitata ad ACME espone un URL del server ACME univoco nel proprio stato una volta pronta. Per revocare un certificato da una CA abilitata ad ACME, devi utilizzare uno strumento client ACME per interagire con questo URL utilizzando il protocollo ACME.
Revoca di un certificato da una CA abilitata ad ACME:
Recupera l'URL del server ACME per la tua CA:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ get certificateauthorities CA_NAME \ -n USER_PROJECT_NAMESPACE \ -ojson | jq -r '.status.acme.uri'Sostituisci quanto segue:
MANAGEMENT_API_SERVER_KUBECONFIG: il percorso del file kubeconfig del server API Management.CA_NAME: il nome della CA abilitata ad ACME (radice o subordinata).USER_PROJECT_NAMESPACE: lo spazio dei nomi del progetto.
Utilizza l'URL ottenuto con lo strumento client ACME che preferisci per emettere una richiesta di revoca. Per maggiori dettagli, consulta la documentazione del tuo client ACME specifico.
Revocare un certificato da una CA con ACME disattivato
Se la modalità ACME è disattivata nella CA, revoca un certificato creando e applicando una risorsa personalizzata RevokeCertificateRequest:
Crea un file YAML della risorsa personalizzata
RevokeCertificateRequest(ad esempiorevoke-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: REASONSostituisci quanto segue:
REVOKE_CERT_REQ_NAME: il nome definito dall'utente per la richiesta di revoca.USER_PROJECT_NAMESPACE: lo spazio dei nomi del progetto.CERT_REQ_NAME: il nome della risorsaCertificateRequestassociata al certificato che vuoi revocare.REASON: il motivo della revoca. I seguenti sono motivi validi:Unspecified,KeyCompromise,CaCompromise,AffiliationChanged,Superseded,CessationOfOperation,CertificateHold,RemoveFromCrl,PrivilegeWithdrawneAaCompromise.
Applica la risorsa personalizzata:
kubectl apply -f revoke-cert-request.yaml --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIGSostituisci MANAGEMENT_API_SERVER_KUBECONFIG con il percorso del file kubeconfig del server API Management.
Verifica la preparazione della richiesta di revoca del certificato:
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))'Sostituisci quanto segue:
MANAGEMENT_API_SERVER_KUBECONFIG: il percorso del file kubeconfig del server API Management.USER_PROJECT_NAMESPACE: lo spazio dei nomi del progetto.REVOKE_CERT_REQ_NAME: il nome della richiesta di revoca.
L'output è simile al seguente:
{ "lastTransitionTime": "2025-08-19T23:20:22Z", "message": "RevokeCertificateRequest reconciled", "observedGeneration": 1, "reason": "Ready", "status": "True", "type": "Ready" }La procedura è completata e il numero di serie del certificato viene aggiunto alla successiva CRL generata.
Elenca le richieste di certificati revocate
Elenca tutte le risorse RevokeCertificateRequest in uno spazio dei nomi del progetto:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
-n USER_PROJECT_NAMESPACE \
get revokecertificaterequests
Sostituisci quanto segue:
MANAGEMENT_API_SERVER_KUBECONFIG: il percorso del file kubeconfig del server API Management.USER_PROJECT_NAMESPACE: lo spazio dei nomi del progetto.
L'output è simile al seguente:
NAMESPACE NAME READY AGE
foo revoke-cert-req True 30s