Plantillas de certificado predefinidas

Certificate Authority Service proporciona plantillas de certificados predefinidas para ayudar a optimizar y proteger el proceso de emisión de certificados. Al ofrecer conjuntos preconfigurados de parámetros X.509 para casos de uso comunes, estas plantillas listas para usar simplifican la administración de certificados, reducen el riesgo de errores humanos y aplican las prácticas recomendadas de seguridad. Cada plantilla está diseñada para un caso de uso específico, de modo que los certificados se emitan con los parámetros correctos para su propósito previsto y, al mismo tiempo, se respeten las limitaciones establecidas por la autoridad certificadora (CA) emisora.

Este documento está dirigido a públicos dentro del grupo de operadores de aplicaciones, como desarrolladores de aplicaciones o científicos de datos, que administran los ciclos de vida de los certificados dentro de su proyecto. Para obtener más información, consulta Públicos de la documentación de Google Distributed Cloud aislado.

Cómo aplicar una plantilla de certificado

Para aplicar una plantilla, especifica su nombre en el campo certificateTemplate de tu recurso CertificateRequest. El Servicio de CA aplica los parámetros de la plantilla elegida al certificado emitido.

Para obtener orientación detallada sobre cómo estructurar el recurso CertificateRequest y cómo incluir el campo certificateTemplate, consulta Solicita un certificado.

Tipos de plantillas de certificados

Están disponibles las siguientes plantillas de certificados predefinidas. Cada plantilla está diseñada para un caso de uso específico y preconfigura los parámetros X.509 que aplica la plantilla.

En las descripciones de las plantillas que se incluyen a continuación, los parámetros que no se establecen de forma explícita en la plantilla se toman del recurso CertificateRequest, ya sea que se proporcionen en una Solicitud de firma de certificado (CSR) o en los campos que definas.

Predeterminado

Nombre de la plantilla: default

Esta plantilla se usa automáticamente si no especificas una plantilla de certificado en tu recurso CertificateRequest. El certificado emitido hereda la configuración de Key usage y Extended key usage del perfil de la CA emisora, y establece Basic constraints en CA:FALSE, lo que impide que el certificado se use para firmar otros certificados.

Parámetro X509 Valor
RawSubject [User defined SubjectOverride or Passthrough from CSR]
Restricciones básicas CA:FALSE
Nombre alternativo del asunto [Passthrough from CSR]
Uso de la clave [Uso de la clave establecido en la CA]
Uso extendido de la clave [Uso extendido de la clave establecido en la CA]

Certificados TLS de cliente

Nombre de la plantilla: endEntityClientAuthCertificate

Esta plantilla emite certificados de entidad final para la autenticación TLS del cliente. El certificado emitido establece Extended key usage en TLS web client authentication y Basic constraints en CA:FALSE, lo que impide que el certificado se use para firmar otros certificados.

Parámetro X509 Valor
RawSubject [User defined SubjectOverride or Passthrough from CSR]
Restricciones básicas CA:FALSE
Nombre alternativo del asunto [Passthrough from CSR]
Uso de la clave Crítico, firma digital, cifrado de claves
Uso extendido de la clave Autenticación de cliente web TLS

Certificados TLS del servidor

Nombre de la plantilla: endEntityServerAuthCertificate

Esta plantilla emite certificados de entidad final para la autenticación TLS del servidor, lo que es ideal para usar con servidores web. El certificado emitido establece Extended key usage en TLS web server authentication y Basic constraints en CA:FALSE, lo que impide que el certificado se use para firmar otros certificados.

Parámetro X509 Valor
RawSubject [User defined SubjectOverride or Passthrough from CSR]
Restricciones básicas CA:FALSE
Nombre alternativo del asunto [Passthrough from CSR]
Uso de la clave Crítico, firma digital, cifrado de claves
Uso extendido de la clave Autenticación del servidor web TLS

Certificados de CA subordinada (PathLen 0)

Nombre de la plantilla: blankSubCACertificate_PathLen0_CSRPassthrough

Esta plantilla emite certificados de CA subordinada con una restricción de longitud de ruta de 0, lo que permite que el certificado firme certificados de entidad final, pero no otros certificados de CA.

Parámetro X509 Valor
RawSubject [User defined SubjectOverride or Passthrough from CSR]
Restricciones básicas CA:TRUE, pathlen: 0
Nombre alternativo del asunto [Passthrough from CSR]
Uso de la clave [Uso de la clave establecido en CSR]
Uso extendido de la clave [Uso extendido de la clave establecido en la CSR]

Certificados de CA subordinada (PathLen 1)

Nombre de la plantilla: blankSubCACertificate_PathLen1_CSRPassthrough

Esta plantilla emite certificados de CA subordinada con una restricción de longitud de ruta de 1, lo que permite que el certificado firme certificados de entidad final, así como otros certificados de CA subordinada que tienen una longitud de ruta de 0.

Parámetro X509 Valor
RawSubject [User defined SubjectOverride or Passthrough from CSR]
Restricciones básicas CA:TRUE, pathlen: 1
Nombre alternativo del asunto [Passthrough from CSR]
Uso de la clave [Uso de la clave establecido en CSR]
Uso extendido de la clave [Uso extendido de la clave establecido en la CSR]

Detección de conflictos

Cada CA tiene un perfil que define los tipos de certificados que puede emitir. Por ejemplo, una CA podría estar restringida a emitir solo certificados de autenticación de cliente. El perfil de la CA se configura en la sección certificateProfile del recurso CertificateAuthority cuando se crea la CA, como se detalla en Crea una autoridad certificadora raíz y Crea una autoridad certificadora subordinada.

Cuando solicitas un certificado con una plantilla predefinida, el Servicio de CA valida los parámetros de la plantilla en función de la configuración de la CA emisora. Para que sean válidos, los parámetros X.509 definidos en la plantilla elegida deben ser un subconjunto de los que permite la CA emisora según su certificateProfile. Se produce un conflicto si la plantilla solicita atributos o permisos que la CA no está autorizada a otorgar. Por ejemplo, una plantilla no puede solicitar un Extended key usage (EKU) de serverAuth si la CA emisora solo está autorizada para otorgar clientAuth.

Si el servicio de CA detecta un conflicto de este tipo, la CertificateRequest falla. Puedes inspeccionar el estado del recurso CertificateRequest para comprender el motivo de la falla.

Ejemplo

En la siguiente situación, se configura una CA llamada client-certs-ca para que emita certificados solo para la autenticación del cliente. Su certificateProfile especifica que el único Extended key usage permitido es TLS web client authentication.

Envías el siguiente CertificateRequest para emitir un certificado para un servidor, con la plantilla endEntityServerAuthCertificate:

  apiVersion: pki.security.gdc.goog/v1
  kind: CertificateRequest
  metadata:
    name: server-cert-req
    namespace: my-project
  spec:
    certificateAuthorityRef:
      name: client-certs-ca
      namespace: my-project
    csr: "..."
    certificateTemplate: endEntityServerAuthCertificate
    signedCertificateSecret: server-cert-secret

Esta solicitud falla por los siguientes motivos:

  • La plantilla endEntityServerAuthCertificate requiere el EKU TLS web server authentication.
  • La CA emisora, client-certs-ca, tiene un certificateProfile que solo permite el EKU TLS web client authentication.

Dado que el EKU requerido por la plantilla no se incluye en la lista de EKU permitidos por el perfil de la CA, los requisitos de la plantilla no son un subconjunto de los parámetros permitidos de la CA. Por lo tanto, se rechaza la solicitud.