Revocare un certificato

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:

  1. Accedi e genera il file kubeconfig per il server API Management se non ne hai uno.

  2. Utilizza il percorso del file kubeconfig del server API di gestione per sostituire MANAGEMENT_API_SERVER_KUBECONFIG in 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:

  1. 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.
  2. 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:

  1. Crea un file YAML della risorsa personalizzata RevokeCertificateRequest (ad esempio 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
    

    Sostituisci 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 risorsa CertificateRequest associata al certificato che vuoi revocare.
    • REASON: il motivo della revoca. I seguenti sono motivi validi: Unspecified, KeyCompromise, CaCompromise, AffiliationChanged, Superseded, CessationOfOperation, CertificateHold, RemoveFromCrl, PrivilegeWithdrawn e AaCompromise.
  2. Applica la risorsa personalizzata:

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

    Sostituisci MANAGEMENT_API_SERVER_KUBECONFIG con il percorso del file kubeconfig del server API Management.

  3. 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