Crear grupo de CA

En esta página, se describe cómo crear grupos de autoridades certificadoras (AC).

Un grupo de AC es un conjunto de varias AC con un certificado común. de Identity and Access Management (IAM). Un grupo de AC hace que Administrar la rotación de AC de forma más sencilla y lograr una mayor efectividad total por segundo (QPS).

Debes crear un grupo de AC antes de poder usar Certificate Authority Service para crear una AC. Para obtener más información, consulta Descripción general de los grupos de AC.

Antes de comenzar

Asegúrate de que cuentas con el Administrador de operaciones del Servicio de CA. (roles/privateca.caManager) de IAM. Para obtener información sobre otorgar una IAM a una principal, consulta Otorga un solo .

Decide la configuración del grupo de AC

En esta sección, se describe la configuración de un grupo de AC y se proporcionan recomendaciones. para decidir la configuración.

Configuración del grupo de AC permanente

La siguiente configuración del grupo de AC no se puede cambiar después de crearlo.

Ubicación

Especifica la ubicación del grupo de AC. Un grupo de AC se almacena en un solo Ubicación de Google Cloud. Te recomendamos Crea tu grupo de AC en la misma ubicación o cerca de la que desees. para usarla.

Para obtener la lista completa de ubicaciones admitidas, consulta Ubicaciones.

Nivel

Elige si quieres crear el grupo de AC con DevOps o Enterprise. del nivel de servicio. Esta opción determina si el servicio de CA persiste certificados, si los certificados creados pueden revocarse más adelante la tasa máxima con la que puedes crear certificados a partir de las AC del grupo de AC. Para obtener más información, consulta Selecciona los niveles de operación.

Configuración opcional del grupo de AC

Política de emisión de certificados

Un grupo de AC puede tener una política de emisión de certificados. Esta política de emisión impone restricciones a los certificados que las AC del grupo de AC pueden emitir. Puedes actualizar la política de emisión de un grupo de AC después de crearlo. Para obtener más información, consulta Descripción general de las plantillas y políticas de emisión.

Para obtener más información sobre la configuración de una política de emisión de certificados, consulta Agrega una política de emisión de certificados a un grupo de AC.

Opciones de publicación

Puedes configurar un grupo de AC para publicar los certificados de cada una de sus AC. Al emitir un certificado, la URL de este certificado de la AC se incluye en el certificado como una extensión de acceso a la información de la autoridad (AIA).

Las AC de los grupos de AC de nivel empresarial pueden publicar certificados de revocación (CRL) a la cuenta de Cloud Storage asociada bucket. Al emitir un certificado, se incluye una URL para esta CRL en el certificado como la extensión del punto de distribución de CRL (CDP). No puedes encontrar la CRL sin la extensión de CDP en el certificado. Para obtener más información, consulta Revocar certificados.

También puedes seleccionar el formato de codificación de los certificados de la AC publicados y CRL. Los formatos de codificación admitidos son el correo con privacidad mejorada (PEM) y Reglas de Codificación Distinguidas (DER). Si no se especifica un formato de codificación, Se usará PEM.

Si creas el grupo de AC con Google Cloud CLI o la consola de Google Cloud, CA Service habilita estas opciones de publicación de forma predeterminada. Para para obtener más información, consulta Cómo inhabilitar la publicación de certificados de la AC y de CRL para las AC de una AC grupo.

Crear grupo de CA

Para crear un grupo de AC, usa las siguientes instrucciones:

Console

Elige un nombre para el grupo de AC

  1. Ve a la página Certificate Authority Service (Servicio de autoridad certificadora) en la consola de Google Cloud.

    Ir a Certificate Authority Service

  2. Haz clic en Administrador de grupos de AC.

  3. Haz clic en Crear grupo.

  4. Agrega un nombre para el grupo de AC que sea único en la región.

  5. Selecciona una región del menú desplegable en el campo Región. Para obtener más información, consulta Cómo elegir la mejor ubicación

  6. Selecciona el nivel Enterprise o DevOps. Para obtener más información, consulta Selecciona los niveles de operación.

  7. Haz clic en Siguiente.

Configurar los tamaños y algoritmos de claves permitidos

CA Service te permite elegir los algoritmos de firma para la Claves de Cloud KMS que respaldan las AC en el grupo de AC. Todos los algoritmos clave están permitidos de forma predeterminada.

Para restringir las claves permitidas en los certificados que emite el grupo de AC, lo siguiente. Este procedimiento es opcional.

  1. Haz clic en el botón de activación.
  2. Haz clic en Agregar un elemento.
  3. En la lista Tipo, selecciona el tipo de clave.

    Si quieres usar claves RSA, haz lo siguiente:

    1. Opcional: Agrega el tamaño mínimo del módulo en bits.
    2. Opcional: Agrega el tamaño máximo del módulo en bits.
    3. Haz clic en Listo.

    Si deseas usar claves de curva elíptica, haz lo siguiente:

    1. Opcional: En la lista Tipo de curva elíptica, selecciona la elíptica. tipo de curva.
    2. Haz clic en Listo.
  4. Para agregar otra clave permitida, haz clic en Agregar un elemento y repite el paso 2.

  5. Haz clic en Siguiente.

Configura métodos de solicitud de certificados

Para establecer limitaciones en los métodos que pueden usar los solicitantes de certificados para solicitar certificados del grupo de AC, haz lo siguiente:

  1. Opcional: Para restringir las solicitudes de certificados basadas en CSR, haz clic en el botón de activación.
  2. Opcional: Para restringir las solicitudes de certificados basadas en configuración, haz clic en el botón de activación.

Configura las opciones de publicación

Para configurar las opciones de publicación, haz lo siguiente:

  1. Opcional: No permitir la publicación de certificados de la AC en Cloud Storage para las AC del grupo, haz clic en el botón de activación.
  2. Opcional: No permitir la publicación de CRL en el bucket de Cloud Storage para en el grupo de AC, haz clic en el botón de activación.
  3. Haga clic en el menú para seleccionar el formato de codificación para las CRL y los certificados de la AC publicados.

    Configura las opciones de publicación de los Certificados de la AC y las CRL para las AC en el grupo de AC.

  4. Haz clic en Siguiente.

Configura los valores del modelo de referencia

Para configurar los valores de referencia en los certificados emitidos desde el grupo de AC, lo siguiente:

  1. Haz clic en el botón de activación.
  2. Haz clic en Configurar valores de referencia.
Define el uso básico de la clave

Puedes usar este parámetro de configuración para configurar las formas en que la clave está incluida en se puede usar el certificado. Las opciones de uso de la clave incluyen el cifrado de datos, la firma de certificados, la firma de CRL y mucho más.

Para obtener más información, consulta Uso de la clave.

Para definir los usos base de claves, haz lo siguiente:

  1. Opcional: En la ventana que aparece, haz clic en el botón de activación, si si deseas especificar usos de clave básicos para los certificados.
  2. Selecciona las casillas de verificación de los modos en que quieres que se use una clave.
  3. Selecciona las formas generales en las que quieres que se use una clave.
  4. Haz clic en Siguiente.
Define el uso extendido de claves

Puedes usar este parámetro de configuración para seleccionar situaciones más detalladas en las que la clave que contiene el certificado. Las opciones incluyen autenticación, autenticación de cliente, firma de código, protección de correo electrónico y más.

Los usos extendidos de claves se definen mediante identificadores de objetos (OID). Si no configura los usos extendidos de claves, se permiten todas las situaciones de uso de claves.

Para obtener más información, consulta Uso extendido de la clave.

Para definir los usos extendidos de claves, haz lo siguiente:

  1. Opcional: Para especificar los usos extendidos de claves para los certificados a los que Haz clic en el botón de activación para solucionar los problemas del grupo de AC.
  2. Selecciona las casillas de verificación para las situaciones de uso extendido de claves.
  3. Haz clic en Siguiente.
Define identificadores de política

La extensión de las políticas de certificados en el certificado expresa las políticas que sigue el grupo de AC emisora. Esta extensión puede incluir información sobre cómo las identidades se validan antes de la emisión del certificado, cómo se revocado y cómo se garantiza la integridad del grupo de AC. Esta extensión te ayuda verificarás los certificados que emite el grupo de AC y verás cómo estos se usan las reglas de firewall.

Para obtener más información, consulta Políticas de certificados.

Para especificar la política que define el uso del certificado, haz lo siguiente:

  1. Opcional: Agrega el identificador de política en el campo Identificadores de política.
  2. Haz clic en Siguiente.
Agregar servidores OCSP de acceso a la información de la autoridad (AIA)

La extensión AIA de un certificado proporciona la siguiente información:

  • Dirección de los servidores OCSP desde donde puedes verificar el estado de revocación del certificado.
  • Es el método de acceso para la entidad emisora del certificado.

Para obtener más información, consulta Acceso a la información de autoridades.

Para agregar los servidores OCSP que aparecen en el campo de extensión de AIA en la certificados, haz lo siguiente: El siguiente procedimiento es opcional.

  1. Opcional: Haz clic en Agregar elemento.
  2. Agrega la URL del servidor OCSP en el campo URL del servidor.
  3. Haz clic en Listo.
  4. Haz clic en Siguiente.
Configurar extensiones adicionales

Si deseas configurar extensiones personalizadas adicionales para incluirlas en el certificados que emite el grupo de AC, haz lo siguiente. El siguiente procedimiento es opcional.

  1. Haz clic en Agregar elemento.
  2. En el campo Identificador de objeto, agrega un identificador de objeto válido que tenga el formato de dígitos separados por puntos.
  3. En el campo Valor, agrega el valor codificado en base64 para el identificador.
  4. Si la extensión es crítica, selecciona La extensión es crítica.

Para guardar todas las configuraciones de valores del modelo de referencia, haz clic en Listo.

Configura restricciones de extensiones

Para no permitir que se incluyan todas las extensiones de las solicitudes de certificados en los certificados emitidos, haz clic en el botón de activación.

Después de hacer clic en el botón de activación, verá el mensaje Certificado conocido extensiones que puedes usar para seleccionar las extensiones del certificado. Para selecciona las extensiones de certificado, haz lo siguiente:

  1. Opcional: Haz clic en el campo Extensiones de certificado conocidas y borra los extensiones innecesarias en el menú.
  2. Opcional: En el campo Extensiones personalizadas, agrega los identificadores de objetos. para las extensiones que quieres que se incluyan en los certificados que el grupo de AC problemas.
Configura restricciones de identidad

Para configurar restricciones en el asunto y los SAN en los certificados que de los problemas del grupo de AC, haz lo siguiente:

  1. Opcional: Para no permitir que se pase el asunto de las solicitudes de certificado haz clic en el botón de activación.
  2. Opcional: No permitir nombres de asunto alternativos en solicitudes de certificados para que no se transfiera, haz clic en el botón de activación.
  3. Opcional: Agrega una expresión de Common Expression Language (CEL) para colocarla sobre las cuestiones relacionadas con los certificados. Para obtener más información, consulta Usa CEL.
  4. Haz clic en Siguiente.

Para aprender a configurar parámetros adicionales en la política de emisión de certificados, consulta IssuancePolicy.

Para crear el grupo de AC, haz clic en Listo.

gcloud

Ejecuta el siguiente comando:

gcloud privateca pools create POOL_NAME

Reemplaza POOL_NAME por el nombre del grupo de AC.

Si no especificas qué nivel necesitas para tu grupo de AC, Enterprise se selecciona de forma predeterminada. Si quieres especificar el nivel grupo de AC, ejecuta el siguiente comando de gcloud:

gcloud privateca pools create POOL_NAME --tier=TIER_NAME

Reemplaza lo siguiente:

Si no especificas el formato de codificación de publicación para tu grupo de AC, la PEM el formato de codificación de publicación está seleccionado de forma predeterminada. Si quieres especificar el formato de codificación de publicación para tu grupo de AC, ejecuta el siguiente comando de gcloud:

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

Reemplaza lo siguiente:

  • POOL_NAME: Es el nombre de tu grupo de AC.
  • PUBLISHING_ENCODING_FORMAT por PEM o DER.

Para obtener más información sobre el comando gcloud privateca pools create, consulta gcloud privateca pool create.

Para obtener información sobre cómo colocar restricciones en el tipo de certificados que puede emitir un grupo de AC, consulta Agrega una política de emisión de certificados a un grupo de AC.

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"
  }
}

Go

Para autenticarte en CA Service, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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

Para autenticarte en CA Service, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.


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

Para autenticarte en CA Service, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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 de REST

  1. Crea un grupo de AC.

    Método HTTP y URL:

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

    Cuerpo JSON de la solicitud:

    {
    "tier": "ENTERPRISE"
    }
    

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

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

  2. Sondea la operación hasta que se complete.

    La operación se completa cuando la propiedad done de la operación de larga duración se estableció en true.

    Método HTTP y URL:

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

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

    {
     "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"
     }
    }
    

Agrega o actualiza etiquetas en un grupo de AC

Una etiqueta es un par clave-valor que te ayuda a organizar tu CA Service de Google Cloud. Puedes filtrar tus recursos según sus etiquetas.

Para agregar o actualizar etiquetas en un grupo de AC, haz lo siguiente:

Console

Para agregar una etiqueta, haz lo siguiente:

  1. Ve a la página Certificate Authority Service.

    Ir a Certificate Authority Service

  2. En la pestaña Administrador del grupo de AC, selecciona el grupo de AC.

  3. Haz clic en Etiquetas.

  4. Haz clic en Agregar etiqueta.

  5. Agrega un par clave-valor.

  6. Haz clic en Guardar.

    Agrega una etiqueta a un grupo de AC existente.

Para editar una etiqueta existente, sigue estos pasos:

  1. Ve a la página Certificate Authority Service.

    Ir a Certificate Authority Service

  2. En la pestaña Administrador del grupo de AC, selecciona el grupo de AC.

  3. Haz clic en Etiquetas.

  4. Edita el valor de la etiqueta.

  5. Haz clic en Guardar.

gcloud

Ejecuta el siguiente comando:

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

Reemplaza POOL_ID por el nombre del grupo de AC.

¿Qué sigue?