Plantillas de certificados predefinidas

Servicio de Autoridades de Certificación 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 habituales, estas plantillas listas para usar simplifican la gestió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 el fin previsto, al tiempo que se respetan las limitaciones establecidas por la autoridad de certificación (CA) emisora.

Este documento está dirigido a audiencias del grupo de operadores de aplicaciones, como desarrolladores de aplicaciones o científicos de datos, que gestionan los ciclos de vida de los certificados en sus proyectos. Para obtener más información, consulta Audiencias de la documentación aislada de GDC.

Aplicar una plantilla de certificado

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

Para obtener instrucciones detalladas sobre cómo estructurar el recurso CertificateRequest e incluir el campo certificateTemplate, consulta Solicitar un certificado.

Tipos de plantillas de certificados

Están disponibles las siguientes plantillas de certificados predefinidas. Cada plantilla está diseñada para un caso práctico 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 definan explícitamente en la plantilla se tomarán del recurso CertificateRequest, ya sea de una solicitud de firma de certificado (CSR) o de los campos que definas.

Predeterminado

Nombre de la plantilla: default

Esta plantilla se usa automáticamente si no especificas ninguna en tu recurso CertificateRequest. El certificado emitido hereda los ajustes Key usage y Extended key usage del perfil de la AC emisora y asigna el valor CA:FALSE a Basic constraints, lo que impide que el certificado se utilice para firmar otros certificados.

Parámetro X509 Valor
RawSubject [User defined SubjectOverride or Passthrough from CSR]
Restricciones básicas CA:FALSE
Nombre alternativo del sujeto [Passthrough from CSR]
Uso de claves [Uso de claves definido en la AC]
Uso adicional de claves [Uso adicional de claves definido en la AC]

Certificados TLS de cliente

Nombre de la plantilla: endEntityClientAuthCertificate

Esta plantilla emite certificados de entidad final para la autenticación TLS del lado del cliente. El certificado emitido asigna el valor Extended key usage a TLS web client authentication y el valor Basic constraints a 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 sujeto [Passthrough from CSR]
Uso de claves Crítico, firma digital, cifrado de clave
Uso adicional de claves Autenticación de cliente web TLS

Certificados TLS de servidor

Nombre de la plantilla: endEntityServerAuthCertificate

Esta plantilla emite certificados de entidad final para la autenticación TLS del lado del servidor, lo que resulta ideal para usar con servidores web. El certificado emitido asigna el valor Extended key usage a TLS web server authentication y el valor Basic constraints a 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 sujeto [Passthrough from CSR]
Uso de claves Crítico, firma digital, cifrado de clave
Uso adicional de claves Autenticación de 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 sujeto [Passthrough from CSR]
Uso de claves [Uso de claves definido en CSR]
Uso adicional de claves [Uso adicional de claves definido en CSR]

Certificados de AC 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 tengan 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 sujeto [Passthrough from CSR]
Uso de claves [Uso de claves definido en CSR]
Uso adicional de claves [Uso adicional de claves definido en CSR]

Detección de conflictos

Cada autoridad de certificación tiene un perfil que define los tipos de certificados que puede emitir. Por ejemplo, una AC puede 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, tal como se explica en los artículos Crear una autoridad de certificación raíz y Crear una autoridad de certificación subordinada.

Cuando solicitas un certificado mediante una plantilla predefinida, el Servicio de Autoridades de Certificación valida los parámetros de la plantilla con la configuración de la AC emisora. Para que sea válido, los parámetros X.509 definidos en la plantilla elegida deben ser un subconjunto de los permitidos por la AC emisora según su certificateProfile. Se produce un conflicto si la plantilla solicita atributos o permisos que la CA no tiene autorización para conceder. Por ejemplo, una plantilla no puede solicitar un Extended key usage (EKU) de serverAuth si la CA emisora solo está autorizada para conceder clientAuth.

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

Ejemplo

En el siguiente caso, se configura una CA llamada client-certs-ca para emitir certificados solo para la autenticación de clientes. 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, usando 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.

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