Aggiungi un criterio di emissione dei certificati a un pool di CA
Questa pagina descrive come aggiungere un criterio di emissione di certificati a un pool di autorità di certificazione (CA).
Un criterio di emissione dei certificati consente di specificare i nomi alternativi dei soggetti (SAN) che possono essere inclusi nei certificati emessi. Puoi specificare il criterio di emissione dei certificati durante la creazione di un pool di CA oppure aggiornare un pool di CA esistente per aggiungerne uno.
Per saperne di più, consulta la Panoramica dei modelli e dei criteri di emissione.
Prima di iniziare
Assicurati di disporre del ruolo IAM Gestore operazioni servizio CA (
roles/privateca.caManager
) o Amministratore servizio CA (roles/privateca.admin
). Per informazioni su come concedere un ruolo IAM a un'entità, consulta Concessione di un singolo ruolo.
Aggiungi un file dei criteri di emissione dei certificati
Per aggiungere un criterio di emissione di certificati a un pool di CA esistente:
Console
Vai alla pagina Certificate Authority Service nella console Google Cloud.
Nella pagina Gestore del pool di CA, fai clic sul nome del pool di CA per cui vuoi aggiungere un criterio di emissione dei certificati.
Nella pagina pool di CA, fai clic su
Modifica.
Per configurare i vincoli sul soggetto e sulle SAN nei certificati emessi dal pool di CA, segui questi passaggi:
- (Facoltativo) Per impedire il trasferimento dell'oggetto nelle richieste di certificati, fai clic sul pulsante di attivazione/disattivazione.
- (Facoltativo) Per impedire il trasferimento dei nomi alternativi degli oggetti nelle richieste di certificati, fai clic sul pulsante di attivazione/disattivazione.
- (Facoltativo) Aggiungi un'espressione CEL (Common Expression Language) per applicare limitazioni agli oggetti dei certificati. Per maggiori informazioni, consulta Utilizzo di CEL.
- Tocca Avanti.
Per impedire l'inclusione di tutte le estensioni delle richieste di certificati nei certificati emessi, fai clic sul pulsante di attivazione/disattivazione.
Dopo aver fatto clic sull'opzione, viene visualizzato il campo Estensioni certificato note che puoi utilizzare per selezionare le estensioni dei certificati. Per selezionare le estensioni dei certificati:
- (Facoltativo) Fai clic sul campo Estensioni certificato note e cancella le estensioni non richieste dal menu.
- (Facoltativo) Nel campo Estensioni personalizzate, aggiungi gli identificatori di oggetti per le estensioni che vuoi includere nei certificati emessi dal pool di CA.
Per configurare i valori di riferimento nei certificati emessi dal pool di CA, segui questi passaggi:
- Fai clic sul pulsante di attivazione/disattivazione.
- Fai clic su Configura i valori di riferimento.
Puoi utilizzare questa impostazione per configurare le modalità di utilizzo della chiave contenuta nel certificato. Le opzioni di utilizzo della chiave includono crittografia della chiave, crittografia dei dati, firma dei certificati, firma dei CRL e altro ancora.
Per saperne di più, vedi Utilizzo delle chiavi
Per definire gli utilizzi di base della chiave:
- (Facoltativo) Nella finestra visualizzata, fai clic sul pulsante di attivazione/disattivazione se vuoi specificare gli utilizzi di base della chiave per i certificati.
- Seleziona le caselle di controllo relative alle modalità di utilizzo della chiave.
- Tocca Avanti.
Puoi utilizzare questa impostazione per selezionare scenari più granulari per cui è possibile utilizzare la chiave contenuta nel certificato. Le opzioni includono autenticazione server, autenticazione client, firma del codice, protezione delle email e altro ancora.
Gli utilizzi estesi della chiave vengono definiti utilizzando identificatori di oggetti (OID). Se non configuri gli utilizzi estesi della chiave, sono consentiti tutti gli scenari di utilizzo della chiave.
Per maggiori informazioni, vedi Utilizzo esteso della chiave.
Per definire gli utilizzi estesi della chiave:
- (Facoltativo) Per specificare gli utilizzi estesi della chiave per i certificati emessi dal pool di CA, fai clic sul pulsante di attivazione/disattivazione.
- Seleziona le caselle di controllo per gli scenari di utilizzo esteso della chiave.
- Tocca Avanti.
L'estensione dei criteri del certificato nel certificato esprime i criteri seguiti dal pool di CA emittente. Questa estensione può includere informazioni su come vengono convalidate le identità prima dell'emissione dei certificati, come vengono revocati i certificati e 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 Criteri per i certificati.
Per specificare il criterio che definisce l'utilizzo dei certificati:
- (Facoltativo) Aggiungi l'identificatore dei criteri nel campo Identificatori dei criteri.
- Tocca Avanti.
L'estensione AIA in un certificato fornisce le seguenti informazioni:
- Indirizzo dei server OCSP da cui è possibile verificare lo stato di revoca del certificato.
- Il metodo di accesso per l'emittente del certificato.
Per ulteriori informazioni, vedi Accesso alle informazioni sulle autorità.
Per aggiungere i server OCSP visualizzati nel campo dell'estensione AIA dei certificati, segui questi passaggi. La procedura seguente è facoltativa.
- (Facoltativo) Fai clic su Aggiungi elemento.
- Nel campo URL del server, aggiungi l'URL del server OCSP.
- Fai clic su Fine.
- Tocca Avanti.
Per configurare estensioni personalizzate aggiuntive da includere nei certificati emessi dal pool di CA, segui questi passaggi. La seguente procedura è facoltativa.
- Fai clic su Aggiungi elemento.
- Nel campo Identificatore oggetto, aggiungi un identificatore di 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 è critica.
Per salvare tutte le configurazioni dei valori di riferimento, fai clic su Fine.
gcloud
Per utilizzare Google Cloud CLI per aggiungere un criterio di emissione di certificati a un pool di CA, devi creare un file YAML che descriva le limitazioni sui certificati che il pool di CA può emettere. I contenuti corrispondono a un IssuancePolicy.
Utilizzando l'editor di Cloud Shell, crea un file
policy.yaml
con i seguenti contenuti:identityConstraints: allowSubjectPassthrough: true allowSubjectAltNamesPassthrough: true
Dove:
- Il campo
allowSubjectPassthrough
è obbligatorio. Se il campoallowSubjectPassthrough
è impostato sutrue
, il campo dell'oggetto viene copiato da una richiesta di certificato nel certificato firmato. In caso contrario, l'oggetto richiesto viene ignorato. - Se il campo
allowSubjectAltNamesPassthrough
è impostato sutrue
, l'estensione SubjectAltNames viene copiata da una richiesta di certificato nel certificato firmato. In caso contrario, il valore SubjectAltNames richiesto viene ignorato.
- Il campo
Per aggiornare il criterio di emissione di certificati di un pool di CA utilizzando il file creato nel passaggio precedente, esegui questo comando:
gcloud privateca pools update POOL_NAME \ --issuance-policy FILE_PATH
Sostituisci quanto segue:
- POOL_NAME: nome del pool di CA.
- FILE_PATH: il percorso del file
policy.yaml
.
Per ulteriori informazioni sul comando
gcloud privateca pools update
, consulta gcloud privateca pool update.
Per maggiori informazioni, vedi Creare un pool di CA.
Limitazioni supportate
CA Service supporta le seguenti limitazioni dei criteri di emissione. Se necessario, puoi combinare le seguenti limitazioni per creare un criterio di emissione dei certificati personalizzato.
Limita o forza i valori X.509 consentiti
Un pool di CA può limitare i valori X.509 consentiti nelle richieste di certificato configurando il campo passthrough_extensions.
Un pool di CA può anche specificare esplicitamente i valori X.509 da aggiungere a tutti i certificati emessi, sovrascrivendo i valori richiesti, utilizzando il campo baseline_values.
I valori baseline_values di un pool di CA consentono di specificare le seguenti proprietà:
Puoi anche utilizzare queste opzioni insieme.
Se aggiorni una parte qualsiasi del campo baseline_values
, l'aggiornamento sostituisce
l'intero insieme di valori del campo baseline_values
.
Esempio: puoi impedire a una CA di emettere solo certificati dell'entità finale con valori X.509 per TLS reciproco (mTLS).
policy.yaml
baselineValues: caOptions: isCa: false keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: clientAuth: true serverAuth: true
Esempio: puoi limitare una CA all'emissione solo di certificati di firma del codice dell'entità finale con un URL OCSP AIA di riferimento.
policy.yaml
baselineValues: caOptions: isCa: false keyUsage: baseKeyUsage: digitalSignature: true extendedKeyUsage: codeSigning: true aiaOcspServers: - "http://foo.bar/revocation" additionalExtensions: - objectId: objectIdPath: - 1 - 2 - 3 critical: false value: "base64 encoded extension value"
Per saperne di più sul profilo del certificato per mTLS dell'entità finale, vedi mTLS dell'entità finale.
Limita campi di identità consentiti
Per limitare l'identità dei certificati emessi tramite un pool di CA, puoi aggiungere un'espressione CEL (Common Expression Language) al campo identity_constraints del criterio di emissione. Le espressioni CEL consentono restrizioni arbitrarie sul nome di dominio del soggetto (incluso il nome comune) e sulle SAN di un certificato.
Per ulteriori informazioni sull'utilizzo di un'espressione CEL per limitare l'oggetto e le SAN, consulta la sezione Utilizzo di CEL.
Esempio: consenti alla CA di emettere solo certificati corrispondenti a un oggetto specifico.
policy.yaml
identityConstraints: allowSubjectPassthrough: true allowSubjectAltNamesPassthrough: false celExpression: expression: 'subject.organization == "Example LLC" && subject.country_code in ["US", "UK"]'
Il campo
celExpression
è facoltativo. Utilizza un'espressione CEL (Common Expression Language) per convalidare l'oggetto X.509 e il SAN risolti prima della firma di un certificato. Per ulteriori informazioni sull'utilizzo delle espressioni CEL, consulta la sezione Utilizzo di CEL.Esempio: consenti solo le SAN con nomi DNS come
us.google.org
o che terminano con.google.com
.policy.yaml
identityConstraints: allowSubjectPassthrough: false allowSubjectAltNamesPassthrough: true celExpression: expression: 'subject_alt_names.all(san, san.type == DNS && (san.value == "us.google.org" || san.value.endsWith(".google.com")) )'
Esempio: consenti solo le SAN con URI
https://google.com/webhp
o che iniziano conspiffe://example-trust-domain-1/ns/namespace1/sa/
.policy.yaml
identityConstraints: allowSubjectPassthrough: false allowSubjectAltNamesPassthrough: true celExpression: expression: 'subject_alt_names.all(san, san.type == URI && (san.value == "https://google.com/webhp" || san.value.startsWith("spiffe://example-trust-domain-1/ns/namespace1/sa/")) )'
Esempio: consenti solo le SAN con indirizzi email
example@google.com
o che terminano con@google.org
.policy.yaml
identityConstraints: allowSubjectPassthrough: false allowSubjectAltNamesPassthrough: true celExpression: expression: 'subject_alt_names.all(san, san.type == EMAIL && (san.value == "example@google.com" || san.value.endsWith("@google.org")) )'
Esempio: consenti solo le SAN personalizzate che hanno un OID specifico e un valore personalizzato.
policy.yaml
identityConstraints: allowSubjectPassthrough: false allowSubjectAltNamesPassthrough: true celExpression: expression: 'subject_alt_names.all(san, san.type == CUSTOM && san.oid == [1, 2, 3, 4] && san.value == "custom-data" )'
Limita la durata massima dei certificati emessi
Per limitare la durata dei certificati emessi, utilizza il campo maximum_lifetime. Se la durata richiesta di un certificato è superiore alla durata massima, questa viene troncata in modo esplicito.
Esempio
Per consentire una durata massima di 30 giorni, utilizza il seguente file policy.yaml
:
policy.yaml
maximumLifetime: 2592000s
Limita le modalità di emissione dei certificati consentite
Puoi richiedere un certificato tramite una richiesta di firma del certificato (CSR) o una descrizione incorporata dei valori richiesti. Alcune organizzazioni potrebbero preferire aggiungere limitazioni all'opzione che è possibile utilizzare, perché il secondo metodo non richiede una prova del possesso della chiave privata associata. Puoi impostare queste limitazioni utilizzando il campo allowedIssuanceModes.
Per ulteriori informazioni sulla specifica delle modalità di richiesta dei certificati da un pool di CA, consulta IssuanceModes.
Per maggiori informazioni sulla richiesta di certificati, consulta Richiedere un certificato e visualizzare i certificati emessi.
Esempio: consenti solo l'emissione di richieste di assistenza clienti.
policy.yaml
allowedIssuanceModes:
allowCsrBasedIssuance: True
allowConfigBasedIssuance: False
Limita gli algoritmi di chiave pubblica della richiesta di certificato
Per limitare la lunghezza minima della chiave e gli algoritmi di chiave pubblica utilizzabili dai certificati, puoi utilizzare il campo allowedKeyTypes nel file YAML dei criteri di emissione dei certificati. Se questo campo viene specificato, la chiave pubblica della richiesta di certificato deve corrispondere a uno dei tipi di chiave elencati nel file YAML. Se questo campo non è specificato, puoi utilizzare qualsiasi chiave, ad eccezione delle chiavi RSA la cui dimensione del modulo è inferiore a 2048 bit. Se vuoi utilizzare una chiave RSA con dimensioni del modulo inferiori a 2048 bit, devi autorizzarla esplicitamente utilizzando il criterio di emissione dei certificati.
Esempio: consenti chiavi RSA con dimensione modulo compresa tra 3072 bit e 4096 bit (inclusi) o chiavi Elliptic Curve Digital Signature Algorithm (ECDSA) sulla curva NIST P-256.
policy.yaml
allowedKeyTypes:
- rsa:
minModulusSize: 3072
maxModulusSize: 4096
- ellipticCurve:
signatureAlgorithm: ECDSA_P256
Puoi scegliere uno dei seguenti algoritmi di firma a curva ellittica:
EC_SIGNATURE_ALGORITHM_UNSPECIFIED
: è possibile utilizzare qualsiasi algoritmo di firma.ECDSA_P256
- Firma digitale con curva ellittica sulla curva NIST P-256.ECDSA_P384
- Firma digitale con curva ellittica sulla curva NIST P-384.EDDSA_25519
: l'algoritmo di firma digitale della curva di Edwards sulla curva 25519, come descritto in RFC 8410.
Passaggi successivi
- Scopri di più sui profili certificati.
- Scopri di più sulla richiesta di certificati.
- Scopri come configurare i criteri IAM.
- Scopri come utilizzare il linguaggio CEL (Common Expression Language).
- Scopri come gestire diversi controlli dei criteri.