Aggiungi un criterio di emissione dei certificati a un pool di CA

Questa pagina descrive come aggiungere un criterio di emissione dei certificati a un certificato l'autorità di controllo (CA).

Un criterio di emissione del certificato consente di specificare il soggetto e l'oggetto nomi alternativi (SAN) che possono essere inclusi nei certificati emessi. Puoi specifica il criterio di emissione del certificato durante la creazione di un pool di CA oppure puoi eseguire l'aggiornamento a un pool di CA esistente per aggiungere un criterio di emissione.

Per saperne di più, consulta la Panoramica dei modelli e dei criteri di emissione.

Prima di iniziare

  • Assicurati di avere il CA Service Operation Manager (roles/privateca.caManager) o l'amministratore del servizio CA (roles/privateca.admin) Ruolo IAM. Per informazioni su per concedere IAM a un'entità. Consulta Concedi una ruolo.

  • Crea un pool di CA.

Aggiungi un file dei criteri di emissione dei certificati

Per aggiungere un criterio di emissione dei certificati a un pool di CA esistente:

Console

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

    Vai a Certificate Authority Service

  2. Nella pagina Gestore del pool di CA, fai clic sul nome del pool di CA per il quale se vuoi aggiungere un criterio di emissione dei certificati.

  3. Nella pagina Pool di CA, fai clic su Modifica.

Configurare i valori base di riferimento

Per configurare i valori di riferimento nei certificati emessi dal pool di CA, procedi nel seguente modo: le seguenti:

  1. Fai clic sul pulsante di attivazione/disattivazione.
  2. Fai clic su Configura valori base di riferimento.
Definire l'utilizzo di base della chiave

Puoi utilizzare questa impostazione per configurare i modi in cui la chiave contenuta in è possibile utilizzare il certificato. Le opzioni per l'utilizzo della chiave includono chiave crittografia, crittografia dei dati, firma dei certificati, firma di CRL e altro ancora.

Per maggiori informazioni, vedi Utilizzo delle chiavi.

Per definire gli utilizzi di base della chiave, segui questi passaggi:

  1. (Facoltativo) Nella finestra visualizzata fai clic sul pulsante di attivazione/disattivazione, se vuoi specificare gli utilizzi di base della chiave per i certificati.
  2. Seleziona le caselle di controllo relative alle modalità di utilizzo di una chiave.
  3. Seleziona i modi generali in cui vuoi utilizzare una chiave.
  4. Fai clic su Avanti.
Definisci l'utilizzo esteso della chiave

Puoi utilizzare questa impostazione per selezionare scenari più granulari per i quali la chiave contenuti nel certificato. Le opzioni includono server l'autenticazione, l'autenticazione client, la firma del codice, la protezione delle email e altro ancora.

Gli utilizzi estesi della chiave sono definiti mediante identificatori di oggetti (OID). In caso contrario gli utilizzi estesi della chiave, sono consentiti tutti gli scenari di utilizzo delle chiavi.

Per maggiori informazioni, consulta la sezione Utilizzo esteso della chiave.

Per definire gli utilizzi estesi della chiave, segui questi passaggi:

  1. Facoltativo: per specificare gli utilizzi estesi della chiave per i certificati che Problemi del pool di CA, fai clic sul pulsante di attivazione/disattivazione.
  2. Seleziona le caselle di controllo per gli scenari di utilizzo esteso delle chiavi.
  3. Fai clic su Avanti.
Definire gli identificatori dei criteri

L'estensione dei criteri del certificato nel certificato esprime i criteri seguito dal pool di CA emittente. Questa estensione può includere informazioni su come le identità vengono convalidate prima dell'emissione dei certificati, in che modo revocata e come viene garantita l'integrità del pool di CA. Questa estensione ti consente verificare i certificati emessi dal pool di CA e vedere come i certificati .

Per ulteriori informazioni, consulta le Norme sui certificati.

Per specificare il criterio che definisce l'utilizzo dei certificati:

  1. (Facoltativo) Aggiungi l'identificatore dei criteri nel campo Identificatori dei criteri.
  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 della revoca del certificato.
  • Il metodo di accesso dell'emittente del certificato.

Per ulteriori informazioni, consulta Accesso alle informazioni sulle autorità.

Per aggiungere i server OCSP visualizzati nel campo dell'estensione AIA nella certificati, procedi nel seguente modo. La seguente procedura è facoltativa.

  1. (Facoltativo) 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.
Configurare estensioni aggiuntive

Per configurare altre estensioni personalizzate da includere nel emessi dal pool di CA, procedi nel seguente modo. La seguente procedura è facoltativo.

  1. Fai clic su Aggiungi elemento.
  2. Nel campo Identificatore oggetto, aggiungi un identificatore di oggetto valido che è formattato come cifre separate da punti.
  3. Nel campo Valore, aggiungi il valore con codifica Base64 per l'identificatore.
  4. Se l'estensione è critica, seleziona L'estensione è critica.

Per salvare tutte le configurazioni dei valori di riferimento, fai clic su Fine.

Configurare i vincoli delle estensioni

Per impedire l'inclusione di tutte le estensioni delle richieste di certificato nella dei certificati emessi, fai clic sul pulsante di attivazione/disattivazione.

Dopo aver fatto clic sul pulsante di attivazione/disattivazione, viene visualizzato il Certificato noto estensioni che puoi utilizzare per selezionare le estensioni del certificato. A seleziona le estensioni del certificato, procedi nel seguente modo:

  1. (Facoltativo) Fai clic sul campo Estensioni di certificato note e cancella i dati contenuti nella estensioni non richieste dal menu.
  2. (Facoltativo) Nel campo Estensioni personalizzate, aggiungi gli identificatori degli oggetti per le estensioni da includere nei certificati che il pool di CA che le applicazioni presentino problemi di prestazioni.
Configurare i vincoli di identità

a configurare i vincoli sull'oggetto e sulle SAN nei certificati che eventuali problemi del pool di CA:

  1. (Facoltativo) Per impedire il passaggio dell'oggetto nelle richieste di certificato fai clic sul pulsante di attivazione/disattivazione.
  2. (Facoltativo) Per non consentire i nomi alternativi degli oggetti nelle richieste di certificati non vengano trasferite, fai clic sul pulsante di attivazione/disattivazione.
  3. (Facoltativo) Aggiungi un'espressione CEL (Common Expression Language) da inserire delle limitazioni relative agli oggetti dei certificati. Per ulteriori informazioni, vedi Utilizzo di CEL.
  4. Fai clic su Avanti.

Per scoprire come configurare parametri aggiuntivi nei criteri di emissione dei certificati, consulta IssuancePolicy.

gcloud

Per utilizzare Google Cloud CLI al fine di aggiungere un criterio di emissione dei certificati a un pool di CA, devi creare un file YAML che descriva le restrizioni sui che il pool di CA può emettere. I contenuti corrispondono IssuancePolicy.

  1. 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 campo allowSubjectPassthrough è impostato su true, il campo dell'oggetto viene copiato da una richiesta di certificato a quello firmato. In caso contrario, l'oggetto richiesto viene eliminato.
    • Se il campo allowSubjectAltNamesPassthrough è impostato su true, l'estensione SubjectAltNames viene copiata da una richiesta di certificato nel certificato firmato. In caso contrario, il valore SubjectAltNames richiesto viene ignorato.
  2. Per aggiornare il criterio di emissione dei 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.

Limitazioni supportate

CA Service supporta le seguenti limitazioni dei criteri di emissione. Tu puoi combinare le seguenti limitazioni per creare un certificato personalizzato delle norme di emissione.

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 eventuali 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 qualsiasi parte del campo baseline_values, l'aggiornamento sostituisce l'intero insieme di valori nel campo baseline_values.

  • Esempio: puoi limitare una CA affinché emetta solo certificati di entità finali 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 affinché emetta solo certificati di firma del codice dell'entità finale con un URL AIA OCSP 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 end-entity, vedi End-entity mTLS.

Limita i campi di identità consentiti

Per limitare l'identità dei certificati emessi tramite un pool di CA, puoi aggiungere un'espressione Common Expression Language (CEL) al campo identity_constraints del criterio di emissione. Le espressioni CEL consentono restrizioni arbitrarie sul nome di dominio del soggetto (compreso il nome comune) e sulle SAN di un certificato.

Per ulteriori informazioni sull'utilizzo di un'espressione CEL per limitare il soggetto e le SAN, consulta Utilizzo di CEL.

  • Esempio: consenti alla CA di emettere solo certificati che corrispondono a un Oggetto specificato.

    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 il soggetto X.509 risolto e il SAN prima della firma di un certificato. Per ulteriori informazioni sull'utilizzo delle espressioni CEL, consulta Utilizzo di CEL.

  • Esempio: consenti solo le SAN che hanno 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 con spiffe://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 alle 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 con 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, la durata del certificato viene troncata esplicitamente.

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 in linea dei valori richiesti. Alcune organizzazioni potrebbero preferire aggiungere limitazioni all'opzione che può essere utilizzata perché quest'ultimo metodo non richiede una prova di possesso della chiave privata associata. Puoi impostare queste limitazioni utilizzando il campo allowedIssuanceModes.

Per saperne di più su come specificare le modalità in cui i certificati possono essere richiesti da un pool di CA, consulta IssuanceModes.

Per ulteriori informazioni sulla richiesta di certificati, vedi Crea una richiesta di certificato.

  • Esempio: consenti solo l'emissione di CSR.

policy.yaml

allowedIssuanceModes:
  allowCsrBasedIssuance: True
  allowConfigBasedIssuance: False

Limita gli algoritmi della chiave pubblica della richiesta di certificato

Per limitare la lunghezza minima della chiave e gli algoritmi della chiave pubblica che certificati, puoi utilizzare il campo allowedKeyTypes nella il file YAML del criterio 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 nella YAML. Se questo campo non viene specificato, è possibile utilizzare qualsiasi chiave, con ad eccezione delle chiavi RSA le cui dimensioni del modulo sono inferiori a 2048 bit. Se vuoi utilizzare una chiave RSA con modulo di dimensioni inferiori a 2048 bit, devi consentirlo esplicitamente utilizzando delle norme di emissione dei certificati.

Esempio: consenti chiavi RSA con dimensioni del modulo comprese tra 3072 bit e 4096 bit (inclusi) o chiavi Elliptic Curve Digital Signature Algorithm (ECDSA) sulla curva P-256 del NIST.

policy.yaml

allowedKeyTypes:
- rsa:
    minModulusSize: 3072
    maxModulusSize: 4096
- ellipticCurve:
    signatureAlgorithm: ECDSA_P256

Puoi scegliere uno dei seguenti algoritmi di firma delle curve ellittiche:

  • EC_SIGNATURE_ALGORITHM_UNSPECIFIED: è possibile utilizzare qualsiasi algoritmo di firma.
  • ECDSA_P256 - Firma digitale con curva ellittica sulla curva P-256 del NIST.
  • ECDSA_P384 - Firma digitale con curva ellittica sulla curva P-384 del NIST.
  • EDDSA_25519: Algoritmo di firma digitale Edwards-curve sulla curva 25519, come descritto in RFC 8410.

Passaggi successivi