Cómo solicitar un certificado y ver los certificados emitidos
En este tema, se describe cómo puedes solicitar un certificado de Certificate Authority Service y ver los certificados emitidos.
Antes de comenzar
Asegúrate de tener la función de IAM de Administrador de certificados del servicio de CA (roles/privateca.certificateManager
) o de solicitante de certificados del servicio de CA (roles/privateca.certificateRequester
). Si deseas obtener más información sobre las funciones predefinidas de IAM para el servicio de CA, consulta Control de acceso con IAM.
Para obtener información sobre cómo otorgar un rol de IAM a una principal, consulta Otorga un solo rol.
Descripción general
Puedes solicitar un certificado con los siguientes métodos:
- Genera tu propia clave privada o pública y envía una solicitud de firma de certificado (CSR).
- Haz que CA Service cree una clave privada o pública por ti.
- Usar una clave de Cloud Key Management Service (Cloud KMS) existente
Solicita un certificado mediante una CSR
Antes de continuar, debes generar una CSR. Después de generar una CSR, haz lo siguiente:
Console
Ve a la página Certificate Authority Service en la consola de Google Cloud.
Haz clic en la pestaña Administrador de CA.
Haz clic en el nombre de la AC desde la que deseas emitir.
En la parte inferior de la página de detalles de la AC, haz clic en Solicitar un certificado.
Opcional: Si deseas usar una plantilla de certificado, haz clic en , selecciona una plantilla de la lista y haz clic en Guardar.
Haz clic en Provide CSR.
Opcional: Para reemplazar el nombre del certificado generado automáticamente, ingresa el nombre personalizado en el campo Nombre del certificado.
Opcional: Si quieres elegir un período de validez personalizado para el certificado, ingresa el valor en el campo Válido para.
Copia y pega tu CSR en el cuadro Certificado de CSR. Para subir la CSR, haz clic en Explorar.
Haz clic en Siguiente.
Descargar el certificado firmado
- Para copiar el certificado, haz clic en
.crt
, haz clic en Descargar certificado.
.
Para descargar el certificado en forma de archivo - Opcional: Para descargar la cadena de certificados, haz clic en Descargar cadena de certificados.
- Haz clic en Listo.
gcloud
gcloud privateca certificates create CERT_ID \
--issuer-pool POOL_ID \
--csr CSR_FILENAME \
--cert-output-file CERT_FILENAME \
--validity "P30D"
Reemplaza lo siguiente:
- CERT_ID: Es el identificador único del certificado.
- POOL_ID: Es el nombre del grupo de AC.
- CSR_FILENAME: Es el archivo que almacena la CSR con codificación PEM.
La marca --validity
define la duración de la validez del certificado. Es una marca opcional cuyo valor predeterminado es 30 días.
Para obtener más información sobre el comando gcloud privateca certificates create
, consulta crea certificados de gcloud privateca.
Terraform
API de REST
Genera una solicitud de firma de certificado (CSR) con el método preferido, como
openssl
.A continuación, se muestra una CSR de muestra codificada para JSON.
-----BEGIN CERTIFICATE REQUEST-----\nMIIChTCCAW0CAQAwQDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQ8wDQYDVQQK\nDAZKb29uaXgxEzARBgNVBAMMCmpvb25peC5uZXQwggEiMA0GCSqGSIb3DQEBAQUA\nA4IBDwAwggEKAoIBAQCnyy+5vcRQUBPqAse3ojmWjyUvhcJK6eLRXpp0teEUF5kg\nHb2ov8gYXb9sSim5fnvs09dGYDKibSrL4Siy7lA/NzMzWtKwyQQeLIQq/cLUJVcd\ndItJ0VRcqr+UPkTCii2vrdcocNDChHM1J8chDdl6DkpYieSTqZwlPcWlQBGAINmT\nT3Q0ZarIVM5l74j13WPuToGrhbVOIZXWxWqJjlHbBA8B/VKtSRCzM1qG60y8Pu2f\n6c78Dfg8+CGRzGwnz8aFS0Yf9czT9luNHSadS/RHjvE9FPZCsinz+6mJlXRcphi1\nKaHsDbstUAhse1h5E9Biyr9SFYRHxY7qRv9aSJ/dAgMBAAGgADANBgkqhkiG9w0B\nAQsFAAOCAQEAZz+I9ff1Rf3lTewXRUpA7nr5HVO1ojCR93Pf27tI/hvNH7z7GwnS\noScoJlClxeRqABOCnfmVoRChullb/KmER4BZ/lF0GQpEtbqbjgjkEDpVlBKCb0+L\nHE9psplIz6H9nfFS3Ouoiodk902vrMEh0LyDYNQuqFoyCZuuepUlK3NmtmkexlgT\n0pJg/5FV0iaQ+GiFXSZhTC3drfiM/wDnXGiqpbW9WmebSij5O+3BNYXKBUgqmT3r\nbryFydNq4qSOIbnN/MNb4UoKno3ve7mnGk9lIDf9UMPvhl+bT7C3OLQLGadJroME\npYnKLoZUvRwEdtZpbNL9QhCAm2QiJ6w+6g==\n-----END CERTIFICATE REQUEST-----
Solicita un certificado.
HTTP method and URL:
POST https://privateca.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificates?certificate_id=CERTIFICATE_ID
Cuerpo JSON de la solicitud:
{ "lifetime": { "seconds": 3600, "nanos": 0 }, "pem_csr": "PEM_CSR" }
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/certificateAuthorities/ca-id/certificates/certificate-id", "pemCertificate": "-----BEGIN CERTIFICATE-----...", "certificateDescription": {...} }
Cómo solicitar un certificado con una clave generada automáticamente
Console
Puedes usar la consola de Google Cloud para generar certificados TLS de cliente o servidor.
En la consola de Google Cloud, ve a la página Certificate Authority Service.
Haz clic en la pestaña Administrador de CA.
Haz clic en el nombre de la AC desde la que deseas emitir.
En la parte inferior de la página de detalles de la autoridad certificadora, haz clic en Solicitar un certificado.
Opcional: Si deseas usar una plantilla de certificado, haz clic en , selecciona una plantilla de la lista y haz clic en Guardar.
Haz clic en Ingresar detalles.
Opcional: Reemplaza el Nombre del certificado generado automáticamente por un nombre personalizado que sea único.
Opcional: Si quieres elegir un período de validez personalizado para el certificado, ingresa el valor en el campo Válido para.
Agrega un nombre de dominio
- En Agregar nombre de dominio, ingresa un nombre de dominio en el campo Nombre de dominio 1.
- Opcional: Si deseas agregar más de un nombre de dominio, haz clic en Agregar elemento y, luego, ingresa otro nombre de dominio en el campo Nombre de dominio 2.
Uso extendido de la clave
En Uso extendido de la clave, selecciona una de las siguientes opciones según tu caso de uso (opcional):
- TLS del servidor: Estos certificados te permiten autenticar la identidad de un servidor.
- TLS de cliente: estos certificados te permiten autenticar la identidad de un solicitante.
Haz clic en Siguiente.
Configura el tamaño de la clave y el algoritmo
- Opcional: En Configura el tamaño y el algoritmo de la clave de firma, selecciona el tamaño y el algoritmo de la clave de firma de la lista. Si omites este paso, se usa la clave RSA de 2048 bits con un resumen SHA 256. Para obtener información sobre cómo seleccionar una clave de firma y un algoritmo, consulta Cómo elegir un algoritmo de clave.
- Haz clic en Continuar.
Descargar el certificado firmado
- Opcional: Para descargar la cadena de certificados con codificación PEM, haz clic en Descargar cadena de certificados.
Opcional: Para descargar la clave privada con codificación PEM asociada, haz clic en Descargar clave privada.
Haz clic en Listo.
gcloud
Para usar la función de clave generada de forma automática, debes instalar la biblioteca de la autoridad criptográfica de Python (PyCA). Para obtener instrucciones sobre cómo instalar la biblioteca de criptografía de Pyca, consulta Incluye la biblioteca de criptografía de Pyca.
Para crear un certificado, usa el siguiente comando gcloud
:
gcloud privateca certificates create \
--issuer-pool POOL_ID \
--generate-key \
--key-output-file KEY_FILENAME \
--cert-output-file CERT_FILENAME \
--dns-san "DNS_NAME" \
--use-preset-profile "CERTIFICATE_PROFILE"
Reemplaza lo siguiente:
- POOL_ID: Es el nombre del grupo de AC.
- KEY_FILENAME: Es la ruta en la que se debe escribir el archivo de claves privadas que se genera.
- CERT_FILENAME: La ruta de acceso en la que se debe escribir el archivo de cadena de certificados con codificación PEM. La cadena de certificados se ordena desde la entidad final hasta la raíz.
- DNS_NAME: Uno o más nombres alternativos de asunto de DNS (SAN) separados por comas
- CERTIFICATE_PROFILE: Es el identificador único del perfil de certificado.
Por ejemplo, usa
leaf_server_tls
para la TLS del servidor de entidad final.
El comando gcloud
menciona las siguientes marcas:
--generate-key
: Genera una clave privada RSA-2048 nueva en tu máquina.
También puedes usar cualquier combinación de las siguientes marcas:
--dns-san
: Te permite pasar uno o más SAN de DNS separados por comas.--ip-san
: Te permite pasar uno o más SAN de IP separados por comas.--uri-san
: Te permite pasar uno o más SAN de URI separados por comas.--subject
: Te permite pasar un nombre X.501 del asunto del certificado.
Para obtener más información sobre el comando gcloud privateca certificates create
, consulta crea certificados de gcloud privateca.
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.
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.
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.
Solicita un certificado con una clave de Cloud KMS existente
Si quieres usar una clave de Cloud KMS para crear un certificado TLS del servidor de entidad final, ejecuta el siguiente comando:
gcloud privateca certificates create \
--issuer-pool POOL_ID \
--kms-key-version projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/KEY_VERSION \
--cert-output-file CERT_FILENAME \
--dns-san "DNS_NAME" \
--use-preset-profile "leaf_server_tls"
Reemplaza lo siguiente:
- POOL_ID: Es el nombre del grupo de AC.
- PROJECT_ID: el ID del proyecto
- LOCATION_ID: Es la ubicación del llavero de claves.
- KEY_RING: Es el nombre del llavero de claves en el que se encuentra la clave.
- KEY: El nombre de la clave.
- KEY_VERSION: Es la versión de la clave.
- CERT_FILENAME: Es la ruta de acceso del archivo de cadena de certificados con codificación PEM. El archivo de cadena de certificados se ordena de la entidad final a la raíz.
- DNS_NAME: SAN de DNS separados por comas.
Realiza operaciones comunes con certificados
En esta sección, se describe cómo puedes realizar ciertas operaciones comunes con certificados.
Emite un certificado de una AC específica en un grupo de AC
gcloud
Si quieres orientarte a una AC específica del grupo de AC para la emisión de certificados, agrega la marca --ca
con el CA_ID de la AC que debe emitir el certificado.
gcloud privateca certificates create \
--issuer-pool POOL_ID \
--ca CA_ID \
--generate-key \
--key-output-file KEY_FILENAME \
--cert-output-file CERT_FILENAME \
--dns-san "DNS_NAME" \
--use-preset-profile "leaf_server_tls"
Console
La consola de Google Cloud solo admite la emisión de certificados de una AC en particular. Sigue las instrucciones en la sección Solicita un certificado mediante una clave generada de forma automática o la sección Solicita un certificado mediante una CSR para elegir la AC que debe emitir el certificado.
Terraform
Ver los certificados emitidos
Console
En la consola de Google Cloud, ve a la página Certificate Authority Service.
Haz clic en la pestaña Administrador de CA.
En la página Autoridades de certificación, haz clic en el nombre de la AC.
En la parte inferior de la página de detalles de la autoridad certificadora, haz clic en Ver certificados emitidos para ver la lista de certificados emitidos por la AC.
Puedes ver los certificados en la página Todos los certificados. Los detalles incluyen el estado del certificado, la AC emisora, el grupo de AC que contiene la AC, la fecha de vencimiento del certificado y mucho más.
gcloud
Para enumerar todos los certificados emitidos por una AC específica en un grupo de AC, usa el siguiente comando gcloud
:
gcloud privateca certificates list --issuer-pool ISSUER_POOL --ca CA_NAME
Para obtener más información sobre el comando gcloud privateca certificates list
, consulta gcloud privatecacertificate list.
Para enumerar todos los certificados de todas las AC en una ubicación determinada, usa el siguiente comando gcloud
:
gcloud privateca certificates list --location LOCATION
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.
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.
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.
Ver detalles de un solo certificado
Console
En la consola de Google Cloud, ve a la página Certificate Authority Service.
Elige tu AC objetivo en la pestaña Administrador de AC.
Haz clic en el nombre de la AC.
En la parte inferior de la página de detalles de la autoridad certificadora, haz clic en Ver los certificados emitidos para ver la lista de estos.
Haz clic en
en la columna Acciones del certificado que deseas descargar.En Descargar, haz clic en Certificado. Haz clic en Cadena de certificados para descargar la cadena de certificados.
gcloud
Para ver la descripción completa de un certificado, ejecuta el siguiente comando:
gcloud privateca certificates describe CERT_NAME \
--issuer-pool POOL_ID
Para obtener más información sobre el comando gcloud privateca certificates describe
, consulta cómo describir certificados de gcloud privateca.
Para exportar la cadena de certificados X.509 con codificación PEM a un archivo, ejecuta el siguiente comando:
gcloud privateca certificates export CERT_NAME \
--issuer-pool POOL_ID \
--include-chain \
--output-file certificate-file
Para obtener más información sobre el comando gcloud privateca certificates export
, consulta cómo exportar certificados de gcloud privateca.
Comprobantes de posesión de certificados
La prueba de posesión de la clave privada garantiza que el solicitante de un certificado tenga la clave privada para ese certificado. El Servicio de CA verifica la prueba de posesión solo si el solicitante proporciona una CSR de PKCS #10 según RFC 2986. No se aplica la prueba de posesión de otras formas de solicitudes de certificados, como las solicitudes de CertificateConfig.
Es responsabilidad de las aplicaciones cliente que aceptan certificados validar si el titular del certificado posee la clave privada de ese certificado. Realizar verificaciones de prueba de posesión durante la emisión del certificado es una forma de defensa en profundidad para proteger a los clientes que no se comportan mal. La existencia de dichos clientes, independientemente de si la AC verifica las pruebas de posesión, podría constituir una vulnerabilidad de seguridad.
¿Qué sigue?
- Obtén más información sobre los perfiles de certificación.
- Obtén más información para revocar certificados.
- Obtén más información para ordenar y filtrar certificados.
- Obtén más información sobre cómo administrar certificados con Google Cloud CLI.