Crea un pool di CA

Questa pagina descrive come creare pool di autorità di certificazione (CA).

Un pool di CA è una raccolta di più CA con un certificato comune criteri di emissione e criteri IAM (Identity and Access Management). Un pool di CA rende la gestione della rotazione CA più semplice e consente di ottenere una maggiore query al secondo (QPS).

Devi creare un pool di CA prima di poter utilizzare Certificate Authority Service per creare una CA. Per saperne di più, consulta Panoramica dei pool di CA.

Prima di iniziare

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

Decidi le impostazioni del pool di CA

Questa sezione descrive le impostazioni di un pool di CA e fornisce suggerimenti per decidere le impostazioni.

Impostazioni del pool di CA permanente

Le seguenti impostazioni del pool di CA non possono essere modificate dopo la creazione del pool di CA.

Località

Specifica la località del pool di CA. Un pool di CA è archiviato in un ambiente Località di Google Cloud. Ti consigliamo di crea il pool di CA nella stessa località o vicino a quella in cui vuoi per utilizzarlo.

Per l'elenco completo delle località supportate, consulta la sezione Località.

Livello

Scegli se creare il pool di CA con DevOps o l'Enterprise livello. Questa scelta influisce sull'eventuale persistenza da parte del servizio CA della creazione certificati, se i certificati creati possono essere revocati in un secondo momento e velocità massima con cui puoi creare certificati dalle CA nel pool di CA. Per ulteriori informazioni, consulta Selezionare i livelli di operazioni.

Impostazioni facoltative del pool di CA

Criteri di emissione dei certificati

Un pool di CA può avere un criterio di emissione dei certificati. Questo criterio di emissione impone limitazioni ai certificati che le CA nel pool di CA sono autorizzate a emettere. Puoi aggiornare il criterio di emissione di un pool di CA dopo aver creato il pool di CA. Per saperne di più, consulta la Panoramica dei modelli e dei criteri di emissione.

Per ulteriori informazioni sulla configurazione di un criterio di emissione dei certificati, consulta Aggiungere un criterio di emissione dei certificati a un pool di CA.

Opzioni di pubblicazione

Puoi configurare un pool di CA per pubblicare i certificati CA per ciascuna delle sue CA. Quando viene emesso un certificato, l'URL di questo certificato CA è incluso nel come estensione per l'accesso alle informazioni sull'autorità (AIA).

Le CA nei pool di CA di livello Enterprise possono essere autorizzate a pubblicare elenchi di revoche dei certificati (CRL) nel bucket Cloud Storage associato. Quando emetti un certificato, un URL a questo CRL è incluso nel come estensione CRL Distribution Point (CDP). Impossibile trovare il CRL senza l'estensione CDP nel certificato. Per ulteriori informazioni, consulta la pagina Revocare i certificati.

Puoi anche selezionare il formato di codifica dei certificati CA pubblicati e CRL. I formati di codifica supportati sono PEM (Privacy Better Mail) e DN (Distinguiled Encoding Rules) (Regole di codifica distinte). Se non viene specificato un formato di codifica, Verrà utilizzato il file PEM.

Se crei il pool di CA utilizzando Google Cloud CLI o la console Google Cloud, CA Service abilita queste opzioni di pubblicazione per impostazione predefinita. Per Per ulteriori informazioni, consulta la sezione Disabilitazione del certificato CA e della pubblicazione CRL per CA in una CA pool.

Crea un pool di CA

Per creare un pool di CA, segui queste istruzioni:

Console

Scegli un nome per il pool di CA

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

    Vai a Certificate Authority Service

  2. Fai clic su Gestore del pool di CA.

  3. Fai clic su Crea pool.

  4. Aggiungi un nome per il pool di CA univoco per la regione.

  5. Seleziona una regione dal menu a discesa nel campo Regione. Per ulteriori informazioni, consulta Scegliere la posizione migliore.

  6. Seleziona il livello Enterprise o DevOps. Per ulteriori informazioni, vedi Selezionare i livelli di operazioni.

  7. Fai clic su Avanti.

Configurare gli algoritmi e le dimensioni della chiave consentiti

Il servizio CA ti consente di scegliere gli algoritmi di firma per le chiavi Cloud KMS che supportano le CA nel pool di CA. Tutti gli algoritmi principali sono consentiti per impostazione predefinita.

Per limitare le chiavi consentite nei certificati emessi dal pool di CA, procedi nel seguente modo: per eseguire le operazioni indicate di seguito. Questa è una procedura facoltativa.

  1. Fai clic sul pulsante di attivazione/disattivazione.
  2. Fai clic su Aggiungi un elemento.
  3. Nell'elenco Tipo, seleziona il tipo di chiave.

    Se vuoi utilizzare le chiavi RSA, segui questi passaggi:

    1. (Facoltativo) Aggiungi la dimensione minima del modulo in bit.
    2. (Facoltativo) Aggiungi la dimensione massima del modulo in bit.
    3. Fai clic su Fine.

    Se vuoi utilizzare le chiavi a curva ellittica, segui questi passaggi:

    1. (Facoltativo) Nell'elenco Tipo di curva ellittica, seleziona la curva ellittica tipo di curva.
    2. Fai clic su Fine.
  4. Per aggiungere un'altra chiave consentita, fai clic su Aggiungi un elemento e ripeti il passaggio 2.

  5. Fai clic su Avanti.

Configurare i metodi di richiesta dei certificati

Per applicare limitazioni ai metodi che i richiedenti dei certificati possono utilizzare per richiedi certificati al pool di CA, segui questi passaggi:

  1. (Facoltativo) Per limitare le richieste di certificati basati su CSR, fai clic sul pulsante di attivazione/disattivazione.
  2. (Facoltativo) Per limitare le richieste di certificati basate sulla configurazione, fai clic pulsante di attivazione/disattivazione.

Configurare le opzioni di pubblicazione

Per configurare le opzioni di pubblicazione:

  1. (Facoltativo) Per non consentire la pubblicazione di certificati CA in Cloud Storage per le CA nel pool di CA, fai clic sul pulsante di attivazione/disattivazione.
  2. (Facoltativo) Per non consentire la pubblicazione di CRL nel bucket Cloud Storage per alle CA nel pool di CA, fai clic sul pulsante di attivazione/disattivazione.
  3. Fai clic sul menu per selezionare il formato di codifica per i certificati CA e le CRL pubblicati.

    Configura le opzioni di pubblicazione per i certificati CA e le CRL per le CA nel pool di CA.

  4. Fai clic su Avanti.

Configura i valori 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 autenticazione del server, autenticazione del client, firma del codice, protezione email e altro ancora.

Gli utilizzi estesi della chiave vengono definiti utilizzando gli 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, vedi 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 ulteriori 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 di oggetti per le estensioni che vuoi includere nei certificati emessi dal pool di CA.
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, consulta Utilizzare CEL.
  4. Fai clic su Avanti.

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

Per creare il pool di CA, fai clic su Fine.

gcloud

Esegui questo comando:

gcloud privateca pools create POOL_NAME

Sostituisci POOL_NAME con il nome del pool di CA.

Se non specifichi il livello richiesto per il pool CA, per impostazione predefinita viene selezionato il livello Enterprise. Se vuoi specificare il livello per il tuo Pool di CA, esegui questo comando gcloud:

gcloud privateca pools create POOL_NAME --tier=TIER_NAME

Sostituisci quanto segue:

Se non specifichi il formato di codifica di pubblicazione per il pool di CA, viene utilizzato il parametro PEM per impostazione predefinita è selezionato il formato di codifica di pubblicazione. Se vuoi specificare il formato di codifica di pubblicazione per il tuo Pool di CA, esegui questo comando gcloud:

gcloud privateca pools create POOL_NAME --publishing-encoding-format=PUBLISHING_ENCODING_FORMAT

Sostituisci quanto segue:

  • POOL_NAME: il nome del pool di CA.
  • PUBLISHING_ENCODING_FORMAT: PEM o DER.

Per ulteriori informazioni sul comando gcloud privateca pools create, consulta gcloud privateca pool create.

Per informazioni su come applicare limitazioni al tipo di certificati che possono essere emessi da un pool di CA, vedi Aggiungere un criterio di emissione dei certificati a un pool di CA.

Terraform

resource "google_privateca_ca_pool" "default" {
  name     = "ca-pool"
  location = "us-central1"
  tier     = "ENTERPRISE"
  publishing_options {
    publish_ca_cert = true
    publish_crl     = true
  }
  labels = {
    foo = "bar"
  }
}

Vai

Per eseguire l'autenticazione con CA Service, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

import (
	"context"
	"fmt"
	"io"

	privateca "cloud.google.com/go/security/privateca/apiv1"
	"cloud.google.com/go/security/privateca/apiv1/privatecapb"
)

// Create a Certificate Authority pool. All certificates created under this CA pool will
// follow the same issuance policy, IAM policies, etc.
func createCaPool(w io.Writer, projectId string, location string, caPoolId string) error {
	// projectId := "your_project_id"
	// location := "us-central1"	// For a list of locations, see: https://cloud.google.com/certificate-authority-service/docs/locations.
	// caPoolId := "ca-pool-id"		// A unique id/name for the ca pool.

	ctx := context.Background()
	caClient, err := privateca.NewCertificateAuthorityClient(ctx)
	if err != nil {
		return fmt.Errorf("NewCertificateAuthorityClient creation failed: %w", err)
	}
	defer caClient.Close()

	caPool := &privatecapb.CaPool{
		// Set the tier (see: https://cloud.google.com/certificate-authority-service/docs/tiers).
		Tier: privatecapb.CaPool_ENTERPRISE,
	}

	locationPath := fmt.Sprintf("projects/%s/locations/%s", projectId, location)

	// See https://pkg.go.dev/cloud.google.com/go/security/privateca/apiv1/privatecapb#CreateCaPoolRequest.
	req := &privatecapb.CreateCaPoolRequest{
		Parent:   locationPath,
		CaPoolId: caPoolId,
		CaPool:   caPool,
	}

	op, err := caClient.CreateCaPool(ctx, req)
	if err != nil {
		return fmt.Errorf("CreateCaPool failed: %w", err)
	}

	if _, err = op.Wait(ctx); err != nil {
		return fmt.Errorf("CreateCaPool failed during wait: %w", err)
	}

	fmt.Fprintf(w, "CA Pool created")

	return nil
}

Java

Per autenticarti al servizio CA, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.


import com.google.api.core.ApiFuture;
import com.google.cloud.security.privateca.v1.CaPool;
import com.google.cloud.security.privateca.v1.CaPool.IssuancePolicy;
import com.google.cloud.security.privateca.v1.CaPool.Tier;
import com.google.cloud.security.privateca.v1.CertificateAuthorityServiceClient;
import com.google.cloud.security.privateca.v1.CertificateIdentityConstraints;
import com.google.cloud.security.privateca.v1.CreateCaPoolRequest;
import com.google.cloud.security.privateca.v1.LocationName;
import com.google.longrunning.Operation;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

public class CreateCaPool {

  public static void main(String[] args)
      throws InterruptedException, ExecutionException, IOException {
    // TODO(developer): Replace these variables before running the sample.
    // location: For a list of locations, see:
    // https://cloud.google.com/certificate-authority-service/docs/locations
    // poolId: Set a unique poolId for the CA pool.
    String project = "your-project-id";
    String location = "ca-location";
    String poolId = "ca-pool-id";
    createCaPool(project, location, poolId);
  }

  // Create a Certificate Authority Pool. All certificates created under this CA pool will
  // follow the same issuance policy, IAM policies,etc.,
  public static void createCaPool(String project, String location, String poolId)
      throws InterruptedException, ExecutionException, IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the `certificateAuthorityServiceClient.close()` method on the client to safely
    // clean up any remaining background resources.
    try (CertificateAuthorityServiceClient certificateAuthorityServiceClient =
        CertificateAuthorityServiceClient.create()) {

      IssuancePolicy issuancePolicy = IssuancePolicy.newBuilder()
          .setIdentityConstraints(CertificateIdentityConstraints.newBuilder()
              .setAllowSubjectPassthrough(true)
              .setAllowSubjectAltNamesPassthrough(true)
              .build())
          .build();

      /* Create the pool request
        Set Parent which denotes the project id and location.
        Set the Tier (see: https://cloud.google.com/certificate-authority-service/docs/tiers).
      */
      CreateCaPoolRequest caPoolRequest =
          CreateCaPoolRequest.newBuilder()
              .setParent(LocationName.of(project, location).toString())
              .setCaPoolId(poolId)
              .setCaPool(
                  CaPool.newBuilder()
                      .setIssuancePolicy(issuancePolicy)
                      .setTier(Tier.ENTERPRISE)
                      .build())
              .build();

      // Create the CA pool.
      ApiFuture<Operation> futureCall =
          certificateAuthorityServiceClient.createCaPoolCallable().futureCall(caPoolRequest);
      Operation response = futureCall.get();

      if (response.hasError()) {
        System.out.println("Error while creating CA pool !" + response.getError());
        return;
      }

      System.out.println("CA pool created successfully: " + poolId);
    }
  }
}

Python

Per eseguire l'autenticazione con CA Service, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

import google.cloud.security.privateca_v1 as privateca_v1


def create_ca_pool(project_id: str, location: str, ca_pool_name: str) -> None:
    """
    Create a Certificate Authority pool. All certificates created under this CA pool will
    follow the same issuance policy, IAM policies,etc.,

    Args:
        project_id: project ID or project number of the Cloud project you want to use.
        location: location you want to use. For a list of locations, see: https://cloud.google.com/certificate-authority-service/docs/locations.
        ca_pool_name: a unique name for the ca pool.
    """

    caServiceClient = privateca_v1.CertificateAuthorityServiceClient()

    ca_pool = privateca_v1.CaPool(
        # Set the tier (see: https://cloud.google.com/certificate-authority-service/docs/tiers).
        tier=privateca_v1.CaPool.Tier.ENTERPRISE,
    )
    location_path = caServiceClient.common_location_path(project_id, location)

    # Create the pool request.
    request = privateca_v1.CreateCaPoolRequest(
        parent=location_path,
        ca_pool_id=ca_pool_name,
        ca_pool=ca_pool,
    )

    # Create the CA pool.
    operation = caServiceClient.create_ca_pool(request=request)

    print("Operation result:", operation.result())

API REST

  1. Crea un pool di CA.

    Metodo HTTP e URL:

    POST https://privateca.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/caPools\?ca_pool_id=POOL_ID

    Corpo JSON della richiesta:

    {
    "tier": "ENTERPRISE"
    }
    

    Per inviare la richiesta, espandi una delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

    {
     "name": "projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID",
     "metadata": {...},
     "done": false
    }
    

  2. Effettua il polling dell'operazione fino al completamento.

    L'operazione viene completata quando la proprietà done dell'operazione a lungo termine è impostata su true.

    Metodo HTTP e URL:

    GET https://privateca.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID

    Per inviare la richiesta, espandi una delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

    {
     "name": "projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID",
     "metadata": {...},
     "done": true,
     "response": {
       "@type": "type.googleapis.com/google.cloud.security.privateca.v1.CaPool",
       "name": "...",
       "tier": "ENTERPRISE"
     }
    }
    

Aggiungi o aggiorna le etichette su un pool di CA

Un'etichetta è una coppia chiave-valore che consente di organizzare il servizio CA Google Cloud. Puoi filtrare le risorse in base alle loro etichette.

Per aggiungere o aggiornare le etichette su un pool di CA, segui questi passaggi:

Console

Per aggiungere un'etichetta:

  1. Vai alla pagina Certificate Authority Service.

    Vai a Certificate Authority Service

  2. Nella scheda Gestore del pool di CA, seleziona il pool di CA.

  3. Fai clic su Etichette.

  4. Fai clic su Aggiungi etichetta.

  5. Aggiungi una coppia chiave-valore.

  6. Fai clic su Salva.

    Aggiungi un&#39;etichetta a un pool di CA esistente.

Per modificare un'etichetta esistente:

  1. Vai alla pagina Certificate Authority Service.

    Vai a Certificate Authority Service

  2. Nella scheda Gestore del pool di CA, seleziona il pool di CA.

  3. Fai clic su Etichette.

  4. Modifica il valore dell'etichetta.

  5. Fai clic su Salva.

gcloud

Esegui questo comando:

gcloud privateca pools update POOL_ID --update-labels foo=bar

Sostituisci POOL_ID con il nome del pool di CA.

Passaggi successivi