Crea un modello di certificato
Questa pagina descrive gli attributi di un modello di certificato e spiega come puoi crearne uno. Per scoprire di più sui modelli di certificato, consulta 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 Gestore operazioni servizio CA (roles/privateca.caManager
) nel progetto, nella cartella o nell'organizzazione.
Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestire 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 Gestore dei modelli e poi su Crea modello.
Seleziona una località per il modello di certificato utilizzando l'elenco Regione. Deve essere la stessa posizione 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. Se vuoi, 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:
Definire 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 della CRL. Per ulteriori informazioni, 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 scegli tra le 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 limitazioni più specifiche e raffinate 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, consulta Uso 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 Scrivere utilizzi estesi della chiave per i certificati emessi da questo pool di CA e poi scegli tra le opzioni elencate.
- Fai clic su Avanti.
Definire gli identificatori delle norme
L'estensione delle norme del certificato nel certificato esprime le norme followed dal pool di CA emittente. Questa estensione può includere informazioni su come vengono convalidate le identità prima dell'emissione dei certificati, 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 ulteriori informazioni, consulta le norme relative ai certificati.
Per specificare il criterio che definisce l'utilizzo del certificato, procedi nel seguente modo:
- (Facoltativo) Aggiungi l'identificatore delle norme nel campo Identificatori norme.
- Fai clic su Avanti.
Aggiungi 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 sulle 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 Server URL (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 in che modo il certificato risultante può essere utilizzato in una gerarchia di autorità di certificazione (CA). In sostanza, determina se un certificato può essere utilizzato per firmare altri certificati e, in caso affermativo, eventuali limitazioni ai certificati emessi.
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 indicata 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.Includi le configurazioni per descrivere le estensioni X.509 con limitazioni della lunghezza del percorso: Specifica le impostazioni che controllano la lunghezza di una catena di certificati, che ha origine da un determinato certificato.Specifica il numero massimo di CA che possono essere collegate 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 non viene dichiarato un valore, 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 dell'oggetto, aggiungi un identificatore dell'oggetto valido, formato come cifre separate da punti.
- Nel campo Value (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.
Poi, vai alla sezione Configurare i vincoli delle estensioni. Seleziona una delle seguenti opzioni:
- Copia tutte le estensioni dalle richieste di certificati sul certificato
- Eliminare tutte le estensioni dalle richieste di certificati
- Copiare estensioni specifiche dalle richieste di certificati al certificato
- Se scegli di copiare estensioni specifiche, puoi:
- Fai clic sul campo Estensioni del certificato note e cancella le estensioni non richieste 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 vincoli sull'oggetto e sui 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 degli oggetti (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 rimuovere dalla richiesta di certificato tutti i SAN specificati dall'utente chiamante.
Il flag --copy-subject
consente di copiare l'oggetto della richiesta di certificato nel certificato firmato. In alternativa, puoi specificare --no-copy-subject
per rimuovere dalla richiesta di certificato gli argomenti specificati dall'utente che ha effettuato la chiamata.
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 che venga emesso 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, consulta Utilizzare CEL per i modelli di certificato.
Il flag --predefined-values-file
specifica il percorso di un file YAML che descrive eventuali valori X.509 predefiniti impostati da questo modello. Le estensioni fornite vengono copiate in tutte le richieste di certificato che utilizzano questo modello e hanno 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 il flag --copy-all-requested-extensions
è impostato, tutte le estensioni specificate nella richiesta di certificato vengono copiate nel certificato firmato.
Se il flag --copy-extensions-by-oid
è impostato, OID specifici vengono copiati dalla richiesta di certificato nel certificato firmato.
Se il flag --copy-known-extensions
è impostato, le estensioni specifiche vengono copiate dalla richiesta di certificato al certificato firmato. Queste estensioni conosciute 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, mantenendo però 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 in YAML vengono omessi o impostati su false
per impostazione predefinita.
Le seguenti estensioni vengono omesse se non viene specificato un valore:
keyUsage
policyIds
additionalExtensions
- Campo
maxIssuerPathLength
nell'estensionecaOptions
Per le seguenti estensioni, il valore predefinito è false
se non viene specificato un valore:
- Campo
isCa
nell'estensionecaOptions
Creare 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 consentano qualsiasi dominio, segui le istruzioni riportate di seguito:
Crea un file denominato
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
, consulta 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 DNS
SAN 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 assicurarti che i nomi DNS inizino o terminino con una determinata stringa, consulta le espressioni CEL di esempio.
Certificati di identità del workload
Per creare un modello di certificato per l'emissione di certificati TLS reciproci (mTLS), segui le istruzioni riportate di seguito:
Crea un file denominato
leaf_mtls_values.yaml
e aggiungi la seguente configurazione TLS mutuale 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
, consulta gcloud privateca templates create.
Per ulteriori informazioni sull'utilizzo delle espressioni CEL per assicurarti che i nomi DNS inizino o terminino con una determinata stringa, consulta le espressioni CEL di esempio.
Concedi l'accesso al modello di certificato
Puoi utilizzare un modello di certificato se disponi del ruolo CA Service Certificate Template User (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 utilizzarlo.
Per concedere il ruolo CA Service Certificate Template User (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 ulteriori informazioni sul comando gcloud privateca templates add-iam-policy-binding
, consulta gcloud privateca templates add-iam-policy-binding.
Per ulteriori informazioni sui ruoli IAM per il servizio CA e sulle relative autorizzazioni associate, 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.