Emetti un certificato utilizzando Google Cloud CLI

Questa pagina spiega come generare o emettere certificati tramite Certificate Authority Service utilizzando Google Cloud CLI.

CA Service ti consente di eseguire il deployment e la gestione di CA private senza gestire l'infrastruttura.

Prima di iniziare

  • Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:

    gcloud init

    Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  • Crea o seleziona un Google Cloud progetto.

    Ruoli richiesti per selezionare o creare un progetto

    • Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per il quale ti è stato concesso un ruolo.
    • Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (roles/resourcemanager.projectCreator), che contiene l'autorizzazione resourcemanager.projects.create. Scopri come concedere i ruoli.
    • Creare un progetto Google Cloud :

      gcloud projects create PROJECT_ID

      Sostituisci PROJECT_ID con un nome per il progetto Google Cloud che stai creando.

    • Seleziona il progetto Google Cloud che hai creato:

      gcloud config set project PROJECT_ID

      Sostituisci PROJECT_ID con il nome del progetto Google Cloud .

  • Abilita l'API Certificate Authority Service:

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

    gcloud services enable privateca.googleapis.com

  • Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .

  • Configura una località predefinita da utilizzare nei comandi gcloud di questa guida rapida.

    gcloud config set privateca/location LOCATION
    

    Le risorse del servizio CA, come i pool di CA e le CA, si trovano in una singola Google Cloud posizione che non puoi modificare dopo aver creato queste risorse.

Crea un pool di CA

Un pool di autorità di certificazione (CA) è una raccolta di più CA. Un pool di CA consente di ruotare le catene di attendibilità senza interruzioni o tempi di inattività per i carichi di lavoro.

Per creare un pool di CA nel livello Enterprise, esegui questo comando:

gcloud privateca pools create POOL_ID --location LOCATION --tier "enterprise"

Sostituisci quanto segue:

  • POOL_ID: il nome del pool di CA
  • LOCATION: la posizione del pool di CA. Per l'elenco completo delle località, consulta Località.

I nomi delle risorse possono contenere lettere, numeri, trattini (-) e trattini bassi (_) e possono avere una lunghezza massima di 63 caratteri.

Crea una CA radice

Un pool di CA è vuoto al momento della creazione. Per richiedere certificati da un pool di CA, devi aggiungere una CA.

Per creare una CA radice e aggiungerla al pool di CA creato, esegui questo comando:

gcloud privateca roots create CA_ID --pool POOL_ID --location LOCATION --subject "CN=Example Prod Root CA,O=Google"

Sostituisci quanto segue:

  • CA_ID: il nome della CA radice
  • POOL_ID: il nome del pool di CA
  • LOCATION: la posizione del pool di CA. Per l'elenco completo delle località, consulta Località.

Quando crea la CA radice, CA Service restituisce il seguente output:

Created Certificate Authority [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificateAuthorities/CA_ID]

Abilita la CA radice inserendo y quando richiesto da gcloud CLI.

(Facoltativo) Crea un pool di CA subordinate

Per creare un pool di CA subordinate, esegui questo comando:

    gcloud privateca pools create SUBORDINATE_POOL_ID
        --location LOCATION
        --tier TIER

Sostituisci quanto segue:

  • SUBORDINATE_POOL_ID: l'ID del pool di CA subordinate
  • LOCATION: la posizione del pool di CA subordinato. Per l'elenco completo delle località, consulta Località.
  • TIER: il livello della CA subordinata, devops o enterprise

(Facoltativo) Crea una CA subordinata firmata da una CA radice archiviata in Google Cloud

Per creare una CA subordinata nel pool di CA subordinate creato nel passaggio precedente, esegui questo comando:

    gcloud privateca subordinates create SUBORDINATE_CA_ID \
        --location=LOCATION \
        --pool=SUBORDINATE_POOL_ID \
        --issuer-pool=POOL_ID \
        --issuer-location=ISSUER_LOCATION \
        --from-ca=EXISTING_CA_ID \
        --kms-key-version projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/KEY_VERSION

Sostituisci quanto segue:

  • SUBORDINATE_CA_ID: l'ID della CA subordinata
  • LOCATION: la posizione della CA subordinata. Per l'elenco completo delle località, consulta Località.
  • SUBORDINATE_POOL_ID: l'ID del pool di CA subordinate che hai creato nella sezione precedente
  • POOL_ID: l'ID del pool di CA principale
  • ISSUER_LOCATION: la posizione del certificato
  • EXISTING_CA_ID: l'ID della CA di origine
  • PROJECT_ID: l'ID progetto
  • LOCATION_ID: la posizione delle chiavi automatizzate
  • KEY_RING: il nome delle chiavi automatizzate in cui si trova la chiave
  • KEY: il nome della chiave
  • KEY_VERSION: la versione della chiave

Quando viene creata la CA subordinata, viene restituita la seguente istruzione.

Created Certificate Authority [projects/my-project-pki/locations/us-west1/caPools/SUBORDINATE_POOL_ID/certificateAuthorities/SUBORDINATE_CA_ID].

Attiva la CA subordinata inserendo y quando richiesto da gcloud CLI.

Crea un certificato

Per utilizzare la CA appena creata per creare un certificato:

  1. Installa la libreria di crittografia Pyca utilizzando il comando pip.

      pip install --user "cryptography>=2.2.0"
    

    CA Service utilizza la libreria di crittografia Pyca per generare e archiviare una nuova coppia di chiavi asimmetriche sulla tua macchina locale. Questa chiave non viene mai inviata al servizio CA.

  2. Per consentire a Google Cloud SDK di utilizzare la libreria di crittografia Pyca, devi abilitare i pacchetti del sito.

    macOS o Linux

    export CLOUDSDK_PYTHON_SITEPACKAGES=1
    

    Windows

    set CLOUDSDK_PYTHON_SITEPACKAGES=1
    
  3. Crea un certificato.

      gcloud privateca certificates create \
          --issuer-pool POOL_ID \
          --issuer-location ISSUER_LOCATION \
          --subject "CN=Example Prod,O=Google" \
          --generate-key \
          --key-output-file=./key \
          --cert-output-file=./cert.pem
    

    Sostituisci quanto segue:

    • POOL_ID: l'ID risorsa del pool di CA che hai creato
    • ISSUER_LOCATION: la posizione dell'autorità di certificazione che ha emesso il certificato digitale

    Certificate Authority Service restituisce la seguente risposta:

    Created Certificate [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificates/CERTIFICATE_ID]
    

Esegui la pulizia

Esegui la pulizia eliminando il pool di CA, la CA e il progetto che hai creato per questa guida rapida.

  1. Revoca il certificato.

      Per revocare un certificato, esegui questo comando:

       gcloud privateca certificates revoke --certificate CERT_NAME --issuer-pool POOL_ID --location 
      LOCATION
        

      Sostituisci quanto segue:

      • CERT_NAME: il nome del certificato che vuoi revocare
      • POOL_ID: il nome del pool di CA che ha emesso il certificato
      • LOCATION: la posizione del pool di CA
  2. Elimina la CA.

    Puoi eliminare una CA solo dopo aver revocato tutti i certificati emessi dalla CA.

    1. Disattiva la CA.

      gcloud privateca roots disable CA_ID --pool=POOL_ID --location=LOCATION
      

      Sostituisci quanto segue:

      • CA_ID: l'ID risorsa della CA
      • POOL_ID: l'ID risorsa del pool di CA
      • LOCATION: la posizione del pool di CA. Per l'elenco completo delle località, consulta Località.
    2. Elimina la CA.

      gcloud privateca roots delete CA_ID --pool=POOL_ID --location=LOCATION
      

    Lo stato della CA cambia in Deleted. CA Service elimina definitivamente la CA 30 giorni dopo l'avvio dell'eliminazione.

  3. Elimina il pool di CA.

    Puoi eliminare un pool di CA solo dopo che la CA al suo interno è stata eliminata definitivamente.

    gcloud privateca pools delete POOL_ID --location=LOCATION
    
  4. Elimina il progetto.

    Elimina un progetto Google Cloud :

    gcloud projects delete PROJECT_ID

Passaggi successivi