Crea un modello di certificato

Questa pagina descrive gli attributi di un modello di certificato e spiega come creare un modello di certificato. Per saperne di più sui modelli di certificato, vedi Informazioni sui modelli di certificato.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare un modello di certificato, chiedi all'amministratore di concederti il ruolo IAM CA Service Operation Manager (roles/privateca.caManager) nel progetto, nella cartella o nell'organizzazione. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Crea un modello di certificato

Per creare un modello di certificato, utilizza uno dei seguenti metodi:

Console

  1. Vai alla pagina Certificate Authority Service nella console Google Cloud .

    Vai a Certificate Authority Service

  2. Fai clic sulla scheda Gestione modelli, quindi su Crea modello.

  3. Seleziona una posizione per il modello di certificato utilizzando l'elenco Regione. Deve essere la stessa località del pool di CA che intendi utilizzare con il modello di certificato.

  4. Inserisci un identificatore univoco per il modello di certificato nel campo ID modello di certificato. (Facoltativo) Fornisci una descrizione per il modello di certificato.

  5. Fai clic su Avanti.

  6. Se vuoi configurare i valori X.509 predefiniti per i certificati che utilizzano questo modello, fai clic sul pulsante di attivazione/disattivazione Includi i valori predefiniti nei certificati emessi utilizzando questo modello di certificato. Poi, fai clic su Configura valori predefiniti.

  7. Configura i valori predefiniti utilizzando le seguenti informazioni:

    Definisci l'utilizzo di base della chiave

    Questa impostazione si riferisce al campo Key Usage all'interno di un certificato digitale. Specifica come può essere utilizzata la chiave privata del certificato, ad esempio per la crittografia della chiave, la crittografia dei dati, la firma del certificato e la firma CRL. Per saperne di più, vedi Utilizzo delle chiavi.

    1. Per selezionare gli utilizzi di base della chiave, fai clic sul pulsante di attivazione/disattivazione Specifica gli utilizzi di base della chiave per i certificati emessi da questo pool di CA, quindi seleziona una delle opzioni elencate.
    2. Fai clic su Avanti.

    Definire l'utilizzo esteso della chiave

    Questa impostazione si riferisce al campo Extended Key Usage (EKU) in un certificato digitale. Fornisce restrizioni più specifiche e perfezionate su come la chiave può essere utilizzata, ad esempio per l'autenticazione del server, l'autenticazione del client, la firma del codice, la protezione email e altro ancora. Per ulteriori informazioni, vedi Utilizzo esteso delle chiavi.

    Gli utilizzi estesi della chiave sono definiti utilizzando gli identificatori di oggetti (OID). Se non configuri gli utilizzi estesi della chiave, sono consentiti tutti gli scenari di utilizzo della chiave.

    1. Per selezionare gli utilizzi estesi della chiave, fai clic sul pulsante di attivazione/disattivazione Scrivi gli utilizzi estesi della chiave per i certificati emessi da questo pool di CA, quindi seleziona una delle opzioni elencate.
    2. Fai clic su Avanti.

    Definire gli identificatori delle policy

    L'estensione delle norme sui certificati nel certificato esprime le norme che segue il pool di CA emittente. Questa estensione può includere informazioni su come vengono convalidate le identità prima dell'emissione del certificato, su come vengono revocati i certificati e su come viene garantita l'integrità del pool di CA. Questa estensione ti aiuta a verificare i certificati emessi dal pool di CA e a vedere come vengono utilizzati.

    Per saperne di più, consulta le norme relative ai certificati.

    Per specificare la policy che definisce l'utilizzo del certificato:

    1. (Facoltativo) Aggiungi l'identificatore criterio nel campo Identificatori criterio.
    2. Fai clic su Avanti.

    Aggiungere server OCSP per l'accesso alle informazioni sull'autorità (AIA)

    L'estensione AIA in un certificato fornisce le seguenti informazioni:

    • Indirizzo dei server OCSP da cui puoi controllare lo stato di revoca del certificato.
    • Il metodo di accesso per l'emittente del certificato.

    Per ulteriori informazioni, vedi Accesso alle informazioni dell'autorità.

    L'aggiunta di server OCSP è facoltativa. Per aggiungere i server OCSP visualizzati nel campo dell'estensione AIA nei certificati:

    1. Fai clic su Aggiungi elemento.
    2. Nel campo URL server, aggiungi l'URL del server OCSP.
    3. Fai clic su Fine.
    4. Fai clic su Avanti.

    Opzioni CA

    Il campo Opzioni CA all'interno di un modello di certificato definisce come il certificato risultante può essere utilizzato in una gerarchia di autorità di certificazione (CA). Determina essenzialmente se un certificato può essere utilizzato per firmare altri certificati e, in caso affermativo, eventuali restrizioni sui certificati che emette.

    Scegli una delle seguenti opzioni:

    1. Includi le configurazioni per descrivere le estensioni X.509 della CA: specifica le impostazioni all'interno di un modello di certificato che controllano le estensioni X.509.

    2. Limita i certificati emessi in modo che vengano utilizzati solo per le CA: questa opzione viene visualizzata solo se selezioni la casella di controllo menzionata nel passaggio precedente. Questo valore booleano indica se il certificato è un certificato CA. Se impostato su true, il certificato può essere utilizzato per firmare altri certificati. Se false, si tratta di un certificato dell'entità finale e non può firmare altri certificati. Se fai clic su questo pulsante di attivazione/disattivazione, ti viene chiesto di definire i vincoli relativi ai nomi per l'estensione nei certificati CA.

    3. Includi le configurazioni per descrivere le limitazioni della lunghezza del percorso per le estensioni X.509: specifica le impostazioni che controllano la lunghezza di una catena di certificati, a partire da un determinato certificato.Specifica il numero massimo di CA che possono essere concatenate a questo certificato CA. Se la lunghezza massima del percorso dell'emittente è impostata su 0, la CA può emettere solo certificati dell'entità finale. Se è impostato su 1, la catena sotto questo certificato CA può includere una sola CA subordinata. Se un valore non viene dichiarato, il numero di CA subordinate nella catena sotto questa CA è illimitato.

    4. Fai clic su Avanti.

    Configurare estensioni aggiuntive

    (Facoltativo) Puoi configurare estensioni personalizzate aggiuntive da includere nei certificati emessi dal pool di CA. Segui questi passaggi:

    1. Fai clic su Aggiungi elemento.
    2. Nel campo Identificatore oggetto, aggiungi un identificatore oggetto valido formattato come cifre separate da punti.
    3. Nel campo Valore, aggiungi il valore con codifica Base64 per l'identificatore.
    4. Se l'estensione è fondamentale, seleziona L'estensione è fondamentale.
  8. Per salvare tutti i valori predefiniti, fai clic su Fine.

  9. A questo punto, vai alla sezione Configura i vincoli delle estensioni. Seleziona una delle seguenti opzioni:

    • Copia tutte le estensioni dalle richieste di certificati sul certificato
    • Rimuovi tutte le estensioni dalle richieste di certificati
    • Copia estensioni specifiche dalle richieste di certificati sul certificato
  10. Se scegli di copiare estensioni specifiche, puoi:
    • Fai clic sul campo Estensioni dei certificati note e deseleziona le estensioni non necessarie dall'elenco.
    • Nel campo Estensioni personalizzate, aggiungi gli identificatori di oggetti per le estensioni che vuoi includere nei certificati emessi dal pool di CA.

  11. Fai clic su Avanti e vai alla sezione Configura vincoli di identità. Per configurare i vincoli per il soggetto e i SAN nei certificati emessi dal pool di CA, seleziona una o entrambe le seguenti opzioni:

    • Copia l'oggetto dalle richieste di certificato al certificato
    • Copia i nomi alternativi dei soggetti (SAN) dalle richieste di certificato al certificato
    (Facoltativo) Nella sezione Configura vincoli di identità, aggiungi un'espressione Common Expression Language (CEL) per definire le limitazioni per gli oggetti dei certificati. Per ulteriori informazioni, consulta la sezione Utilizzare CEL.

  12. Fai clic su Avanti, quindi su Fine.

gcloud

gcloud privateca templates create TEMPLATE_ID \
  --copy-subject \
  --copy-sans \
  --identity-cel-expression <expr> \
  --predefined-values-file FILE_PATH \
  --copy-all-requested-extensions \
  --copy-extensions-by-oid <1.2.3.4,5.6.7.8> \
  --copy-known-extensions <ext1,ext2>

Sostituisci quanto segue:

  • TEMPLATE_ID: l'identificatore univoco del modello di certificato.
  • FILE_PATH: il file YAML che descrive i valori X.509 impostati dal modello di certificato.

Il flag --copy-sans consente di copiare l'estensione Subject Alternative Name (SAN) dalla richiesta di certificato nel certificato firmato. In alternativa, puoi specificare --no-copy-sans per eliminare tutti i SAN specificati dal chiamante dalla richiesta di certificato.

Il flag --copy-subject consente di copiare l'oggetto dalla richiesta di certificato nel certificato firmato. In alternativa, puoi specificare --no-copy-subject per eliminare qualsiasi soggetto specificato dal chiamante dalla richiesta di certificato.

Il flag --identity-cel-expression accetta un'espressione CEL che viene valutata in base all'oggetto e al nome alternativo dell'oggetto del certificato prima dell'emissione e restituisce un valore booleano che indica se la richiesta deve essere consentita. Per informazioni sull'utilizzo di un'espressione Common Expression Language (CEL) per un modello di certificato, vedi Utilizzo di CEL per i modelli di certificato.

Il flag --predefined-values-file specifica il percorso di un file YAML che descrive i valori X.509 predefiniti impostati da questo modello. Le estensioni fornite vengono copiate in tutte le richieste di certificato che utilizzano questo modello, avendo la precedenza su eventuali estensioni consentite nella richiesta di certificato. Se aggiorni una parte dei valori X.509 predefiniti, l'aggiornamento sostituisce l'intero insieme di valori X.509 predefiniti.

Se è impostato il flag --copy-all-requested-extensions, tutte le estensioni specificate nella richiesta di certificato vengono copiate nel certificato firmato.

Se è impostato il flag --copy-extensions-by-oid, gli OID specifici vengono copiati dalla richiesta di certificato nel certificato firmato.

Se è impostato il flag --copy-known-extensions, estensioni specifiche vengono copiate dalla richiesta di certificato nel certificato firmato. Queste estensioni note possono essere una delle seguenti: base-key-usage, extended-key-usage, ca-options, policy-ids o aia-ocsp-servers.

Rimuovi il flag --copy-all-requested-extensions per ignorare tutte le estensioni X.509 nella richiesta di certificato, ma mantieni comunque i valori predefiniti definiti in questo modello.

Ecco un esempio di configurazione del modello di certificato:

keyUsage:
  baseKeyUsage:
    digitalSignature: true
    keyEncipherment: true
    contentCommitment: false
    dataEncipherment: false
    keyAgreement: false
    certSign: false
    crlSign: false
    encipherOnly: false
    decipherOnly: false
  extendedKeyUsage:
    serverAuth: true
    clientAuth: false
    codeSigning: false
    emailProtection: false
    timeStamping: false
    ocspSigning: false
caOptions:
  isCa: true
  maxIssuerPathLength: 1
policyIds:
- objectIdPath:
  - 1
  - 2
  - 3
additionalExtensions:
- objectId:
    objectIdPath:
    - 1
    - 2
    - 3
  critical: false
  value: "base64 encoded extension value"

I valori non specificati nel file YAML vengono omessi o impostati sul valore predefinito false.

Se non viene specificato un valore, le seguenti estensioni vengono omesse:

  • keyUsage
  • policyIds
  • additionalExtensions
  • Campo maxIssuerPathLength nell'estensione caOptions

Se non viene specificato un valore, le seguenti estensioni utilizzano false per impostazione predefinita:

  • Campo isCa nell'estensione caOptions

Crea un modello di certificato per scenari comuni

Questa sezione fornisce i comandi gcloud per creare un modello di certificato per i casi d'uso comuni.

Certificati TLS del server DNS per qualsiasi dominio

Per creare un modello di certificato per l'emissione di certificati TLS del server che consentono qualsiasi dominio, segui queste istruzioni:

  1. Crea un file con il nome leaf_server_tls_values.yaml e aggiungi la seguente configurazione TLS del server dell'entità finale:

    leaf_server_tls_values.yaml

    keyUsage:
      baseKeyUsage:
        digitalSignature: true
        keyEncipherment: true
      extendedKeyUsage:
        serverAuth: true
    caOptions:
      isCa: false
    
  2. Per consentire solo i certificati con SAN di tipo DNS, esegui il seguente comando gcloud:

    gcloud

    gcloud privateca templates create server-tls \
      --predefined-values-file leaf_server_tls_values.yaml \
      --copy-sans --no-copy-subject \
      --identity-cel-expression "subject_alt_names.all(san, san.type == DNS)"
    

    Per ulteriori informazioni sul comando gcloud privateca templates create, vedi gcloud privateca templates create.

Certificati TLS del server DNS con solo domini di test

Per creare un modello di certificato per l'emissione di certificati TLS del server con SAN DNS limitati ai domini di test, utilizza il seguente comando gcloud:

gcloud

gcloud privateca templates create server-tls \
  --predefined-values-file leaf_server_tls_values.yaml \
  --copy-sans --no-copy-subject \
  --identity-cel-expression "subject_alt_names.all(san, san.type == DNS && san.value.endsWith('.test.example.com'))"

I contenuti del file leaf_server_tls_values.yaml devono essere gli stessi dell'esempio precedente.

Per ulteriori informazioni sull'utilizzo delle espressioni CEL per garantire che i nomi DNS inizino o terminino con una determinata stringa, consulta Espressioni CEL di esempio.

Certificati di identità del workload

Per creare un modello di certificato per l'emissione di certificati TLS reciproca (mTLS), utilizza le seguenti istruzioni:

  1. Crea un file con il nome leaf_mtls_values.yaml e aggiungi la seguente configurazione TLS reciproca dell'entità finale.

    leaf_mtls_values.yaml

    keyUsage:
      baseKeyUsage:
        digitalSignature: true
        keyEncipherment: true
      extendedKeyUsage:
        serverAuth: true
        clientAuth: true
    caOptions:
      isCa: false
    
  2. Per consentire solo i certificati con SAN URI SPIFFE, utilizza il seguente comando gcloud:

    gcloud

    gcloud privateca templates create workload-spiffe \
      --predefined-values-file leaf_mtls_values.yaml \
      --copy-sans --no-copy-subject \
      --identity-cel-expression "subject_alt_names.all(san, san.type == URI && san.value.startsWith('spiffe://'))"
    

    Per ulteriori informazioni sul comando gcloud privateca templates create, vedi gcloud privateca templates create.

Per ulteriori informazioni sull'utilizzo delle espressioni CEL per garantire che i nomi DNS inizino o terminino con una determinata stringa, consulta Espressioni CEL di esempio.

Concedere l'accesso al modello di certificato

Puoi utilizzare un modello di certificato se disponi del ruolo Utente modello di certificato servizio CA (roles/privateca.templateUser). Consigliamo agli autori di un modello di certificato di concedere il ruolo Utente modello di certificato del servizio CA ai membri dell'organizzazione che potrebbero utilizzare quel modello di certificato.

Per concedere il ruolo Utente modello di certificato del servizio CA (roles/privateca.templateUser) a tutti gli utenti del dominio example.com, utilizza il seguente comando gcloud:

gcloud

gcloud privateca templates add-iam-policy-binding TEMPLATE_ID \
  --member "domain:example.com" \
  --role "roles/privateca.templateUser"

Sostituisci quanto segue:

  • TEMPLATE_ID: l'identificatore univoco del modello di certificato.

Per saperne di più sul comando gcloud privateca templates add-iam-policy-binding, consulta gcloud privateca templates add-iam-policy-binding.

Per saperne di più sui ruoli IAM per CA Service e sulle relative autorizzazioni, consulta Controllo dell'accesso con IAM.

Passaggi successivi