Agrega una política de emisión de certificados a un grupo de AC

En esta página, se describe cómo agregar una política de emisión de certificados a un certificado autoridad (AC).

Una política de emisión de certificados te permite especificar el asunto y el asunto nombres alternativos (SAN) que pueden incluirse en los certificados emitidos. Puedes especifica la política de emisión de certificados mientras creas un grupo de AC o puedes actualizar un grupo de AC existente para agregar una política de emisión.

Para obtener más información, consulta Descripción general de las plantillas y políticas de emisión.

Antes de comenzar

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

  • Crea un grupo de CA.

Agrega un archivo de política de emisión de certificados

Para agregar una política de emisión de certificados a un grupo de AC existente, haz lo siguiente:

Console

  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. En la página Administrador del grupo de AC, haz clic en el nombre del grupo de AC para el que quieres agregar una política de emisión de certificados.

  3. En la página Grupo de AC, haz clic en Editar.

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.

gcloud

Para usar Google Cloud CLI con el objetivo de agregar una política de emisión de certificados a un grupo de AC, debes crear un archivo YAML que describa las restricciones del certificados que el grupo de AC puede emitir. El contenido corresponde a un IssuancePolicy.

  1. Con el editor de Cloud Shell, crea un archivo policy.yaml con el comando siguiente contenido:

    identityConstraints:
      allowSubjectPassthrough: true
      allowSubjectAltNamesPassthrough: true
    

    Aquí:

    • El campo allowSubjectPassthrough es obligatorio. Si el campo allowSubjectPassthrough se establece como true, el campo de asunto se copia de una solicitud de certificado en el certificado firmado. De lo contrario, se descarta el sujeto solicitado.
    • Si el campo allowSubjectAltNamesPassthrough se establece como true, la extensión SubjectAltNames se copia de una solicitud de certificado al certificado firmado. De lo contrario, se descartan los SubjectAltNames solicitados.
  2. Para actualizar la política de emisión de certificados de un grupo de AC con el archivo que creaste en el paso anterior, ejecuta el siguiente comando:

    gcloud privateca pools update POOL_NAME \
      --issuance-policy FILE_PATH
    

    Reemplaza lo siguiente:

    • POOL_NAME: Nombre del grupo de AC.
    • FILE_PATH: Es la ruta de acceso del archivo policy.yaml.

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

Restricciones admitidas

CA Service admite las siguientes restricciones de la política de emisión. Tú puedes combinar las siguientes restricciones según sea necesario para compilar un certificado personalizado una política de emisión de contenido.

Restringe o fuerza los valores X.509 permitidos

Un grupo de AC puede restringir los valores permitidos de X.509 en las solicitudes de certificados configurando el campo passthrough_extensions.

Un grupo de AC también puede especificar explícitamente valores de X.509 para agregarlos a todos sus certificados emitidos y reemplazar cualquier valor solicitado con el campo baseline_values.

Los valores baseline_values de un grupo de AC permiten especificar las siguientes propiedades:

También puedes usar estas opciones juntas.

Si actualizas cualquier parte del campo baseline_values, la actualización reemplazará todo el conjunto de valores en el campo baseline_values.

  • Ejemplo: Restringe una AC para que emita solo certificados de entidad final con valores X.509 para TLS mutua (mTLS).

    policy.yaml

    baselineValues:
      caOptions:
        isCa: false
      keyUsage:
        baseKeyUsage:
          digitalSignature: true
          keyEncipherment: true
        extendedKeyUsage:
           clientAuth: true
           serverAuth: true
    
  • Ejemplo: Restringe una AC para que solo emita certificados de firma de código de entidad final con una URL de referencia de OCSP de AIA.

    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"
    

Si quieres obtener más información sobre el perfil del certificado para mTLS de entidad final, consulta mTLS de entidad final.

Restringir los campos de identidad permitidos

Para restringir la identidad de los certificados emitidos a través de un grupo de AC, puedes agregar una expresión de Common Expression Language (CEL) al campo identity_constraints de la política de emisión. Las expresiones CEL permiten restricciones arbitrarias en el nombre de dominio del sujeto (incluido el nombre común) y los SAN de un certificado.

Si quieres obtener más información sobre el uso de una expresión CEL para restringir el asunto y los SAN, consulta Usa CEL.

  • Ejemplo: Permite que la AC solo emita certificados que coincidan con un asunto específico.

    policy.yaml

    identityConstraints:
      allowSubjectPassthrough: true
      allowSubjectAltNamesPassthrough: false
      celExpression:
        expression: 'subject.organization == "Example LLC" && subject.country_code in ["US", "UK"]'
    

    El campo celExpression es opcional. Usa una expresión de Common Expression Language (CEL) para validar el sujeto X.509 resuelto y el SAN antes de que se firme un certificado. Para obtener más información sobre cómo usar expresiones en CEL, consulta Usa CEL.

  • Ejemplo: Permite solo los SAN que tengan nombres de DNS como us.google.org o que terminen en .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")) )'
    
  • Ejemplo: Permite solo los SAN que tengan URI https://google.com/webhp o que comiencen 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/")) )'
    
  • Ejemplo: Permite solo los SAN que tengan direcciones de correo electrónico example@google.com o que terminen en @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")) )'
    
  • Ejemplo: Permite solo los SAN personalizados que tengan un OID específico y un valor personalizado.

    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" )'
    

Restringir la vida útil máxima de los certificados emitidos

Para restringir la vida útil de los certificados emitidos, utiliza el campo maximum_lifetime. Si la vida útil solicitada de un certificado es superior a la duración máxima, la vida útil del certificado se trunca de forma explícita.

Ejemplo

Para permitir una vida útil máxima de 30 días, usa el siguiente archivo policy.yaml:

policy.yaml

maximumLifetime: 2592000s

Restringir los modos de emisión de certificados permitidos

Puedes solicitar un certificado a través de una solicitud de firma de certificado (CSR) o una descripción intercalada de los valores solicitados. Es posible que algunas organizaciones prefieran agregar limitaciones a la opción que se puede usar porque este último método no requiere una prueba de posesión de la clave privada asociada. Puedes establecer estas limitaciones en el campo allowedIssuanceModes.

Para obtener más información sobre cómo especificar las formas en que se pueden solicitar certificados desde un grupo de AC, consulta IssuanceModes.

Para obtener más información sobre la solicitud de certificados, consulta Crea una solicitud de certificado.

  • Ejemplo: Permitir solo la emisión de CSR.

policy.yaml

allowedIssuanceModes:
  allowCsrBasedIssuance: True
  allowConfigBasedIssuance: False

Restringir los algoritmos de clave pública de la solicitud de certificado

Para restringir la longitud mínima de la clave y los algoritmos de clave pública que certificados usan, puedes usar el campo allowedKeyTypes en en el archivo YAML de la política de emisión de certificados. Si se especifica este campo, entonces la clave pública de la solicitud de certificado debe coincidir con uno de los tipos de claves enumerados en el YAML. Si no se especifica este campo, puedes usar cualquier clave, con el a excepción de las claves RSA cuyo tamaño de módulo sea inferior a 2048 bits. Si quieres usar una clave RSA con un tamaño de módulo inferior a 2048 bits, debes permitirlo explícitamente con el la política de emisión de certificados.

Ejemplo: Permite las claves RSA con un tamaño de módulo de entre 3,072 bits y 4,096 bits bits (inclusive) o claves del algoritmo de firma digital de curva elíptica (ECDSA) sobre la curva P-256 de NIST.

policy.yaml

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

Puedes elegir uno de los siguientes algoritmos de firma de curva elíptica:

  • EC_SIGNATURE_ALGORITHM_UNSPECIFIED: Se puede usar cualquier algoritmo de firma.
  • ECDSA_P256: Firma digital de curva elíptica sobre la curva P-256 de NIST.
  • ECDSA_P384: Firma digital de curva elíptica sobre la curva P-384 de NIST.
  • EDDSA_25519: Algoritmo de firma digital Edwards-curve sobre la curva 25519, como se describe en RFC 8410.

¿Qué sigue?