Solicitar un certificado
En esta página, se describe cómo puedes crear una solicitud de certificado en Certificate Authority Service.
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).
- Usa una clave privada o pública generada automáticamente por el Servicio de CA.
- Usa una clave existente de Cloud Key Management Service (Cloud KMS).
Antes de comenzar
Para obtener los permisos que necesitas para emitir certificados, pídele a tu administrador que te otorgue el rol de IAM de Solicitante de certificados del servicio de CA (
roles/privateca.certificateRequester
) o Administrador de certificados del servicio de CA (roles/privateca.certificateManager
).Para obtener más información sobre los roles de IAM predefinidos para el servicio de CA, consulta Control de acceso con IAM.
Para obtener información sobre cómo otorgar un rol de IAM a un principal, consulta Otorga un solo rol.
Solicita un certificado con una CSR
Para obtener un certificado, debes generar una CSR, que luego usarás para solicitar el certificado.
Genera el CSR
Para obtener instrucciones detalladas sobre cómo generar una CSR con OpenSSL, consulta Cómo generar una CSR con OpenSSL. También puedes usar el siguiente archivo de configuración de muestra como referencia cuando generes tu CSR.
Para usar el archivo de configuración de muestra, sigue estos pasos:
Crea un archivo de configuración llamado
csr.cnf
con la siguiente configuración.cat << EOF > csr.cnf [req] distinguished_name = req_distinguished_name req_extensions = v3_req prompt = no [req_distinguished_name] CN = example.com [v3_req] keyUsage = critical, digitalSignature, keyEncipherment extendedKeyUsage = serverAuth subjectAltName = @alt_names [alt_names] DNS.1 = example.com DNS.2 = www.example.com EOF
En este ejemplo, se genera una clave RSA de 2,048 bits (encriptada con contraseña) y una CSR correspondiente que contiene lo siguiente:
- El atributo
commonName
en el DN del sujeto - La extensión de
subjectAlternativeName
- La extensión
keyUsage
(marcada como crítica) - La extensión de
extendedKeyUsage
Modifica los parámetros según sea necesario. Para usar el formato de archivo de configuración
x509v3_config
para definir extensiones para certificados X.509 y CSR, consulta la documentación de OpenSSL.- El atributo
Ejecuta el siguiente comando
openssl
para generar una CSR y una clave privada correspondiente:openssl req -newkey rsa:2048 -out csr.pem -keyout key.pem -config csr.cnf
Este comando genera los siguientes archivos:
csr.pem
: Tu CSR, lista para enviarse a una CAkey.pem
: Tu clave privada, que debes mantener segura
Usa el archivo
csr.pem
en tu solicitud de certificado.
Envía la solicitud de certificado con la CSR
Para solicitar un certificado con la CSR, sigue estos pasos:
Console
Ve a la página Certificate Authority Service en la consola deGoogle Cloud .
Haz clic en Solicitar un certificado.
Selecciona una región. La región debe ser la misma que la del grupo de entidades de certificación que deseas usar.
Selecciona un grupo de CA.
Opcional: Selecciona una CA específica del grupo de CA. Ten en cuenta que, cuando eliges una CA específica para la emisión de certificados, creas una dependencia en esa CA, lo que dificulta la rotación de las CA.
Opcional: Elige una plantilla de certificado. Si usas una plantilla de certificado, asegúrate de que las políticas de la plantilla no entren en conflicto con las políticas del grupo de CA seleccionado.
Haz clic en Provide Certificate Signing Request (CSR) y, luego, en Next. Se muestran los detalles del certificado.
Opcional: Para reemplazar el nombre del certificado generado automáticamente, ingresa el nombre personalizado en el campo Nombre del certificado. Una vez que se cree el certificado, no podrás borrar ni volver a usar su nombre.
Opcional: Para elegir un período de validez personalizado para el certificado, ingresa el valor en el campo Válido durante.
Copia y pega tu CSR en el cuadro CSR del certificado. Si quieres subir un archivo que contenga la CSR, haz clic en Explorar y, luego, elige tu archivo.
Haz clic en Generar certificado.
Descarga el certificado firmado
- Para ver el certificado generado, haz clic en Ver certificado y, luego, en Ver.
- Para copiar el certificado, haz clic en
.crt
, haz clic en Descargar certificado.
. Para descargar el certificado en forma de un archivo - Opcional: Para descargar la cadena de certificados, haz clic en Descargar la cadena de certificados.
gcloud
gcloud privateca certificates create CERT_ID \
--issuer-pool POOL_ID \
--issuer-location ISSUER_LOCATION \
--csr CSR_FILENAME \
--cert-output-file CERT_OUTPUT_FILE \
--validity "P30D"
Reemplaza lo siguiente:
- CERT_ID: Es el identificador único del certificado.
- POOL_ID: Es el nombre del grupo de AC.
- ISSUER_LOCATION: Es la ubicación del certificado.
- CSR_FILENAME: Es el archivo que almacena la CSR codificada en PEM.
- CERT_OUTPUT_FILE: Es la ruta en la que se debe escribir el archivo de la cadena de certificados con codificación PEM. La cadena de certificados está ordenada desde la entidad final hasta la raíz.
La marca --validity
define la duración de 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 gcloud privateca certificates create.
Terraform
API de REST
Genera una solicitud de firma de certificado (CSR) con el método que prefieras, como
openssl
.A continuación, se muestra un ejemplo de CSR codificado 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.
Método HTTP y 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": {...} }
Solicita un certificado con una clave generada automáticamente
Console
Puedes usar la Google Cloud consola para generar certificados TLS de cliente o servidor.
Ve a la página Certificate Authority Service en la consola deGoogle Cloud .
Haz clic en Solicitar un certificado.
Selecciona una región. La región debe ser la misma que la del grupo de entidades de certificación que deseas usar.
Selecciona un grupo de CA.
Haz clic en Ingresar los detalles manualmente. Se muestran los detalles del certificado.
Opcional: Reemplaza el Nombre del certificado generado automáticamente por un nombre personalizado y único.
Opcional: Para elegir un período de validez personalizado para el certificado, ingresa el valor en el campo Válido durante.
Agregar 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
Opcional: En Uso de clave extendido, selecciona una de las siguientes opciones según tu caso de uso:
- TLS del cliente: Estos certificados te permiten autenticar la identidad de un solicitante.
- TLS del servidor: Estos certificados te permiten autenticar la identidad de un servidor.
Haz clic en Siguiente.
Configura el tamaño de la clave y el algoritmo
- Opcional: En Configurar el algoritmo y el tamaño de la clave, selecciona el tamaño y el algoritmo de la clave de firma en la lista. Si omites este paso, se usará la clave RSASSA-PSS de 2048 bits con un resumen SHA 256. Para obtener información sobre cómo seleccionar una clave y un algoritmo de firma, consulta Elige un algoritmo de clave.
- Haz clic en Generar certificado.
Descarga el certificado firmado
- Para ver el certificado generado, haz clic en Ver certificado y, luego, en Ver.
- Opcional: Para descargar la cadena de certificados con codificación PEM, haz clic en Descargar cadena de certificados.
Opcional: Para descargar la clave privada asociada con codificación PEM, haz clic en Descargar clave privada.
gcloud
Para usar la función de claves generadas automáticamente, debes instalar la biblioteca de la Autoridad de Certificación Criptográfica de Python (PyCA). Para obtener instrucciones sobre cómo instalar la biblioteca de criptografía de Pyca, consulta Cómo incluir la biblioteca de criptografía de Pyca.
Para crear un certificado, usa el siguiente comando gcloud
:
gcloud privateca certificates create \
--issuer-pool POOL_ID \
--issuer-location ISSUER_LOCATION \
--generate-key \
--key-output-file KEY_FILENAME \
--cert-output-file CERT_OUTPUT_FILE \
--dns-san "DNS_NAME" \
--use-preset-profile "CERTIFICATE_PROFILE"
Reemplaza lo siguiente:
- POOL_ID: Es el nombre del grupo de AC.
- ISSUER_LOCATION: Es la ubicación del certificado.
- KEY_FILENAME: Es la ruta de acceso en la que se debe escribir el archivo de clave privada generado.
- CERT_OUTPUT_FILE: Es la ruta en la que se debe escribir el archivo de la 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 del sujeto (SAN) de DNS separados por comas.
- CERTIFICATE_PROFILE: Es el identificador único del perfil de certificado. Por ejemplo, usa
leaf_server_tls
para el TLS del servidor de la entidad final.
El comando gcloud
menciona las siguientes marcas:
--generate-key
: Genera una nueva clave privada RSA-2048 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 sujeto del certificado.
Para obtener más información sobre el comando gcloud privateca certificates create
, consulta gcloud privateca certificates create.
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
Solo puedes usar Google Cloud CLI para solicitar certificados con una clave de Cloud KMS.
gcloud
Para usar una clave de Cloud KMS y crear un certificado TLS de servidor de entidad final, ejecuta el siguiente comando:
gcloud privateca certificates create \
--issuer-pool POOL_ID \
--issuer-location ISSUER_LOCATION \
--kms-key-version projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/KEY_VERSION \
--cert-output-file CERT_OUTPUT_FILE \
--dns-san "DNS_NAME" \
--use-preset-profile "leaf_server_tls"
Reemplaza lo siguiente:
- POOL_ID: Es el nombre del grupo de AC.
- ISSUER_LOCATION: Es la ubicación del certificado.
- 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_OUTPUT_FILE: Es la ruta de acceso al archivo de la cadena de certificados con codificación PEM. El archivo de cadena de certificados está ordenado desde la entidad final hasta la raíz.
- DNS_NAME: Son los SAN de DNS separados por comas.
Emite un certificado desde una CA específica en un grupo de CA
En esta sección, se describe cómo emitir certificados desde una CA específica en un grupo de CA.
Console
Ve a la página Certificate Authority Service en la consola deGoogle Cloud .
Haz clic en Solicitar un certificado.
Selecciona una región. La región debe ser la misma que la del grupo de entidades de certificación que deseas usar.
Selecciona un grupo de CA.
Para elegir una CA, haz clic en Usar una CA específica de este grupo de CA y, luego, selecciona una CA de la lista.
Selecciona otros parámetros como lo hiciste en la sección Solicita un certificado con una clave generada automáticamente o en la sección Solicita un certificado con una CSR.
gcloud
Para segmentar una CA específica en el grupo de CA para la emisión de certificados, agrega la marca --ca
con el CA_ID de la CA que debe emitir el certificado.
gcloud privateca certificates create \
--issuer-pool POOL_ID \
--issuer-location ISSUER_LOCATION \
--ca CA_ID \
--generate-key \
--key-output-file KEY_FILENAME \
--cert-output-file CERT_OUTPUT_FILE \
--dns-san "DNS_NAME" \
--use-preset-profile "leaf_server_tls"
Terraform
Solicita un certificado en modo de validación
Solicitar un certificado en modo de validación crea un certificado de prueba sin firmar. Este certificado de prueba no está codificado con PEM y no genera cargos. Si bien no puedes descargar el certificado, la descripción hipotética del certificado te permite confirmar que puedes emitir correctamente un certificado firmado con los parámetros que elegiste.
Para solicitar un certificado en modo de validación, sigue estos pasos:
Console
Ve a la página Certificate Authority Service en la consola deGoogle Cloud .
Haz clic en Solicitar un certificado.
Selecciona Usar el modo de validación para una descripción hipotética de certificado en lugar de un certificado firmado.
Sigue los mismos pasos que seguirías para solicitar un certificado firmado.
¿Qué sigue?
- Obtén más información sobre los perfiles de certificados.
- Obtén más información para revocar certificados.
- Obtén más información para ordenar y filtrar certificados. - Aprende a administrar certificados con Google Cloud CLI.