Crea una plantilla de certificado
En esta página, se describen los atributos de una plantilla de certificado y se explica cómo puedes crear una. Para obtener más información sobre las plantillas de certificado, consulta Acerca de las plantillas de certificado.
Roles obligatorios
Para obtener los permisos que
necesitas para crear una plantilla de certificado,
pídele a tu administrador que te otorgue el rol de IAM Administrador de operaciones del Servicio de CA (roles/privateca.caManager) en el proyecto, la carpeta o la organización.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Crea una plantilla de certificado
Para crear una plantilla de certificado, usa uno de los siguientes métodos:
Console
Ve a la página Certificate Authority Service en la Google Cloud consola.
Haz clic en la pestaña Template manager y, luego, en Create template.
Selecciona una ubicación para la plantilla de certificado con la lista Región. Debe ser la misma ubicación que el grupo de CA que deseas usar con la plantilla de certificado.
Ingresa un identificador único para la plantilla de certificado en el campo Certificate template ID. De manera opcional, proporciona una descripción para la plantilla de certificado.
Haz clic en Siguiente.
Si deseas configurar los valores predeterminados de X.509 para los certificados que usan esta plantilla, haz clic en el botón de activación Incluye valores predefinidos en los certificados emitidos con esta plantilla de certificado. Luego, haz clic en Configura valores predefinidos.
Configura los valores predefinidos con la siguiente información:
Define el uso base de la clave
Esta configuración hace referencia al campo
Key Usagedentro de un certificado digital. Especifica cómo se puede usar la clave privada del certificado, por ejemplo, para el cifrado de claves, el cifrado de datos, la firma de certificados y la firma de CRL. Para obtener más información, consulta Uso de la clave.- Para seleccionar los usos base de la clave, haz clic en el botón de activación Especifica los usos base de claves para los certificados emitidos desde este grupo de CA y, luego, selecciona una de las opciones que aparecen en la lista.
- Haz clic en Siguiente.
Define el uso extendido de la clave
Esta configuración hace referencia al campo
Extended Key Usage (EKU)en un certificado digital. Proporciona restricciones más específicas y refinadas sobre cómo se puede usar la clave, como para la autenticación del servidor, la autenticación del cliente, la firma de código, la protección de correo electrónico y mucho más. Para obtener más información, consulta Uso extendido de la clave.Los usos extendidos de la clave se definen con identificadores de objetos (OID). Si no configuras los usos extendidos de la clave, se permiten todas las situaciones de uso de la clave.
- Para seleccionar los usos extendidos de la clave, haz clic en el botón de activación Escribe los usos de clave extendidos para los certificados emitidos desde este grupo de CA y, luego, selecciona una de las opciones que aparecen en la lista.
- Haz clic en Siguiente.
Define los identificadores de políticas
La extensión de políticas de certificado en el certificado expresa las políticas que sigue el grupo de CA emisor. Esta extensión puede incluir información sobre cómo se validan las identidades antes de la emisión del certificado, cómo se revocan los certificados y cómo se garantiza la integridad del grupo de CA. Esta extensión te ayuda a verificar los certificados que emite el grupo de CA y a ver cómo se usan.
Para obtener más información, consulta Políticas de certificado.
Para especificar la política que define el uso del certificado, haz lo siguiente:
- Opcional: Agrega el identificador de política en el campo Policy identifiers.
- Haz clic en Siguiente.
Agrega servidores OCSP de acceso a la información de la autoridad (AIA)
La extensión de AIA en un certificado proporciona la siguiente información:
- Dirección de los servidores OCSP desde los que puedes verificar el estado de revocación del certificado
- El método de acceso para la entidad emisora del certificado
Para obtener más información, consulta Acceso a la información de la autoridad.
Agregar servidores OCSP es opcional. Para agregar los servidores OCSP que aparecen en el campo de extensión de AIA en los certificados, haz lo siguiente:
- Haz clic en Agregar elemento.
- En el campo URL del servidor, agrega la URL del servidor OCSP.
- Haz clic en Listo.
- Haz clic en Siguiente.
Opciones de CA
El campo Opciones de CA dentro de una plantilla de certificado define cómo se puede usar el certificado resultante en una jerarquía de autoridad certificadora (CA). Básicamente, determina si se puede usar un certificado para firmar otros certificados y, si es así, las restricciones sobre los certificados que emite.
Selecciona alguna de las siguientes opciones:
Incluye los archivos de configuración para describir las extensiones de CA X.509: Especifica la configuración dentro de una plantilla de certificado que controla las extensiones X.509.
Restringe los certificados emitidos a fin de que se usen solo para las CA: Esta opción solo aparece si seleccionas la casilla de verificación mencionada en el paso anterior. Este valor booleano indica si el certificado es un certificado de CA. Si se establece en
true, el certificado se puede usar para firmar otros certificados. Si esfalse, es un certificado de entidad final y no puede firmar otros certificados. Si haces clic en este botón de activación, se te solicitará que definas las restricciones de nombres para la extensión en los certificados de CA.Incluye la configuración para describir las extensiones X.509 de restricción de la longitud de la ruta: Especifica la configuración que controla la duración de una cadena de certificados, que se deriva de un certificado en particular.Especifica la cantidad máxima de AC que se pueden encadenar a este certificado de la AC. Si la longitud máxima de la ruta de la entidad emisora se establece en
0, la CA solo puede emitir certificados de entidad final. Si se establece en1, la cadena debajo de este certificado de la AC solo puede incluir una AC subordinada. Si no se declara un valor, la cantidad de CA subordinadas en la cadena debajo de esta CA no está limitada.- Haz clic en Siguiente.
Configura extensiones adicionales
Opcional: Puedes configurar extensiones personalizadas adicionales para incluir en los certificados emitidos por el grupo de CA. Puedes hacer lo siguiente:
- Haz clic en Agregar elemento.
- En el campo Identificador de objeto, agrega un identificador de objeto válido con formato de dígitos separados por puntos.
- En el campo Valor, agrega el valor codificado en base64 para el identificador.
- Si la extensión es fundamental, selecciona La extensión es fundamental.
Para guardar todos los valores predefinidos, haz clic en Listo.
A continuación, ve a la sección Configura las restricciones de extensión. Selecciona cualquiera de las siguientes opciones:
- Copiar todas las extensiones de las solicitudes de certificados en el certificado
- Descartar todas las extensiones de las solicitudes de certificado
- Copiar en el certificado extensiones específicas de solicitudes de certificados
- Si eliges copiar extensiones específicas, puedes hacer lo siguiente:
- Haz clic en el campo Extensiones de certificado conocidas y borra las extensiones no requeridas de la lista.
- En el campo Extensiones personalizadas, agrega los identificadores de objetos para las extensiones que deseas incluir en los certificados que emite el grupo de CA.
Haz clic en Siguiente y ve a la sección Configura las restricciones de identidad. Para configurar restricciones en el sujeto y los SAN en los certificados que emite el grupo de CA, selecciona una o ambas de las siguientes opciones:
- Copiar en el certificado el asunto de las solicitudes de certificado
- Copiar en el certificado el asunto de los nombres alternativos (SAN) de las solicitudes de certificado
Haz clic en Siguiente y, luego, en Listo.
gcloud
gcloud privateca templates create TEMPLATE_ID \
--copy-subject \
--copy-sans \
--identity-cel-expression <expr> \
--predefined-values-file FILE_PATH \
--copy-all-requested-extensions \
--copy-extensions-by-oid <1.2.3.4,5.6.7.8> \
--copy-known-extensions <ext1,ext2>
Reemplaza lo siguiente:
- TEMPLATE_ID: el identificador único de la plantilla de certificado
- FILE_PATH: el archivo YAML que describe los valores X.509 establecidos por la plantilla de certificado
La marca --copy-sans permite que la extensión de nombre alternativo de sujeto (SAN) de la solicitud de certificado se copie en el certificado firmado. Como alternativa, puedes especificar --no-copy-sans para descartar cualquier SAN especificado por el llamador de la solicitud de certificado.
La marca --copy-subject permite que el sujeto de la solicitud de certificado se copie en el certificado firmado. Como alternativa, puedes especificar --no-copy-subject para descartar cualquier sujeto especificado por el llamador de la solicitud de certificado.
La marca --identity-cel-expression toma una expresión de CEL que se evalúa en función del sujeto y el nombre alternativo de sujeto del certificado antes de que se emita, y muestra un valor booleano que indica si se debe permitir la solicitud. Para obtener información sobre el uso de una expresión de Common Expression Language (CEL) para una plantilla de certificado, consulta Usa CEL para plantillas de certificado.
La marca --predefined-values-file especifica la ruta de acceso a un archivo YAML que describe los valores X.509 predefinidos establecidos por esta plantilla. Las extensiones proporcionadas se copian en cualquier solicitud de certificado que use esta plantilla, lo que tiene prioridad sobre cualquier extensión permitida en la solicitud de certificado. Si actualizas alguna parte de los valores X.509 predefinidos, la actualización reemplaza todo el conjunto de valores X.509 predefinidos.
Si se establece la marca --copy-all-requested-extensions, todas las extensiones especificadas en la solicitud de certificado se copian en el certificado firmado.
Si se establece la marca --copy-extensions-by-oid, se copian OID específicos de la solicitud de certificado en el certificado firmado.
Si se establece la marca --copy-known-extensions, se copian extensiones específicas de la solicitud de certificado en el certificado firmado. Estas extensiones conocidas pueden ser una de las siguientes: base-key-usage, extended-key-usage, ca-options, policy-ids o aia-ocsp-servers.
Quita la marca --copy-all-requested-extensions para ignorar todas las extensiones X.509 en la solicitud de certificado, pero conserva los valores predefinidos definidos en esta plantilla.
Esta es una configuración de ejemplo de plantilla de certificado:
keyUsage:
baseKeyUsage:
digitalSignature: true
keyEncipherment: true
contentCommitment: false
dataEncipherment: false
keyAgreement: false
certSign: false
crlSign: false
encipherOnly: false
decipherOnly: false
extendedKeyUsage:
serverAuth: true
clientAuth: false
codeSigning: false
emailProtection: false
timeStamping: false
ocspSigning: false
caOptions:
isCa: true
maxIssuerPathLength: 1
policyIds:
- objectIdPath:
- 1
- 2
- 3
additionalExtensions:
- objectId:
objectIdPath:
- 1
- 2
- 3
critical: false
value: "base64 encoded extension value"
Los valores no especificados en el archivo YAML se omiten o se establecen de forma predeterminada en false.
Se omiten las siguientes extensiones si no se especifica un valor:
keyUsagepolicyIdsadditionalExtensions- Campo
maxIssuerPathLengthen la extensióncaOptions
Las siguientes extensiones se establecen de forma predeterminada en false si no se especifica un valor:
- Campo
isCaen la extensióncaOptions
Crea una plantilla de certificado para situaciones comunes
En esta sección, se proporcionan comandos de gcloud para crear una plantilla de certificado para casos de uso comunes.
Certificados TLS del servidor DNS para cualquier dominio
Para crear una plantilla de certificado para emitir certificados TLS del servidor que permitan cualquier dominio, usa las siguientes instrucciones:
Crea un archivo con el nombre
leaf_server_tls_values.yamly agrégale la siguiente configuración de TLS del servidor de entidad final:leaf_server_tls_values.yaml
keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: serverAuth: true caOptions: isCa: falsePara permitir solo certificados con SAN de tipo
DNS, ejecuta el siguiente comando degcloud:gcloud
gcloud privateca templates create server-tls \ --predefined-values-file leaf_server_tls_values.yaml \ --copy-sans --no-copy-subject \ --identity-cel-expression "subject_alt_names.all(san, san.type == DNS)"Para obtener más información sobre el comando
gcloud privateca templates create, consulta gcloud privateca templates create.
Certificados TLS del servidor DNS solo con dominios de prueba
Para crear una plantilla de certificado para emitir certificados TLS del servidor con SAN de DNS limitados a dominios de prueba, usa el siguiente comando de gcloud:
gcloud
gcloud privateca templates create server-tls \
--predefined-values-file leaf_server_tls_values.yaml \
--copy-sans --no-copy-subject \
--identity-cel-expression "subject_alt_names.all(san, san.type == DNS && san.value.endsWith('.test.example.com'))"
El contenido del archivo leaf_server_tls_values.yaml debe ser el mismo que el del ejemplo anterior.
Para obtener más información sobre el uso de expresiones de CEL para garantizar que los nombres de DNS comiencen o terminen con una cadena en particular, consulta Expresiones de ejemplo de CEL.
Certificados de Workload Identity
Para crear una plantilla de certificado para emitir certificados mutuos de TLS (mTLS), usa las siguientes instrucciones:
Crea un archivo con el nombre
leaf_mtls_values.yamly agrégale la siguiente configuración de TLS mutua de entidad final.leaf_mtls_values.yaml
keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: serverAuth: true clientAuth: true caOptions: isCa: falsePara permitir solo certificados con SPIFFE SAN de URI, usa el siguiente
gcloudcomando:gcloud
gcloud privateca templates create workload-spiffe \ --predefined-values-file leaf_mtls_values.yaml \ --copy-sans --no-copy-subject \ --identity-cel-expression "subject_alt_names.all(san, san.type == URI && san.value.startsWith('spiffe://'))"Para obtener más información sobre el comando
gcloud privateca templates create, consulta gcloud privateca templates create.
Para obtener más información sobre el uso de expresiones de CEL para garantizar que los nombres de DNS comiencen o terminen con una cadena en particular, consulta Expresiones de ejemplo de CEL.
Otorga acceso a la plantilla de certificado
Puedes usar una plantilla de certificado si tienes el rol de Usuario de plantillas de certificados del Servicio de CA (roles/privateca.templateUser). Recomendamos que los autores de una plantilla de certificado otorguen el rol de Usuario de plantillas de certificados del Servicio de AC a los miembros de la organización que podrían usar esa plantilla de certificado.
Para otorgar el rol de Usuario de plantillas de certificados del Servicio de AC (roles/privateca.templateUser) a todos los usuarios del dominio example.com, usa el siguiente comando de gcloud:
gcloud
gcloud privateca templates add-iam-policy-binding TEMPLATE_ID \
--member "domain:example.com" \
--role "roles/privateca.templateUser"
Reemplaza lo siguiente:
- TEMPLATE_ID: el identificador único de la plantilla de certificado
Para obtener más información sobre el comando gcloud privateca templates add-iam-policy-binding, consulta gcloud privateca templates add-iam-policy-binding.
Para obtener más información sobre los roles de IAM para el Servicio de CA, y sus permisos asociados, consulta Control de acceso con IAM.
¿Qué sigue?
- Obtén información sobre Common Expression Language.
- Obtén información para usar Common Expression Language.
- Obtén información sobre los perfiles de certificado.