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
Vai alla pagina Certificate Authority Service nella console Google Cloud .
Fai clic sulla scheda Gestione modelli, quindi su Crea modello.
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.
Inserisci un identificatore univoco per il modello di certificato nel campo ID modello di certificato. (Facoltativo) Fornisci una descrizione per il modello di certificato.
Fai clic su Avanti.
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.
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.- 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.
- 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.
- 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.
- 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:
- (Facoltativo) Aggiungi l'identificatore criterio nel campo Identificatori criterio.
- 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:
- Fai clic su Aggiungi elemento.
- Nel campo URL server, aggiungi l'URL del server OCSP.
- Fai clic su Fine.
- 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:
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.
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. Sefalse
, 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.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 su1
, 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.- 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:
- Fai clic su Aggiungi elemento.
- Nel campo Identificatore oggetto, aggiungi un identificatore oggetto valido formattato come cifre separate da punti.
- Nel campo Valore, aggiungi il valore con codifica Base64 per l'identificatore.
- Se l'estensione è fondamentale, seleziona L'estensione è fondamentale.
Per salvare tutti i valori predefiniti, fai clic su Fine.
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
- 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.
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
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'estensionecaOptions
Se non viene specificato un valore, le seguenti estensioni utilizzano false
per impostazione predefinita:
- Campo
isCa
nell'estensionecaOptions
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:
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
Per consentire solo i certificati con SAN di tipo
DNS
, esegui il seguente comandogcloud
: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:
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
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
- Scopri di più su Common Expression Language.
- Scopri come utilizzare Common Expression Language.
- Scopri di più sui profili dei certificati.