Emite un certificado con Google Cloud CLI
En esta página, se explica cómo puedes generar o emitir certificados a través de Certificate Authority Service con Google Cloud CLI.
El servicio de AC te permite implementar y administrar AC privadas sin administrar la infraestructura.
Antes de comenzar
-
Instala Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI con el siguiente comando:
gcloud initSi usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
Crea o selecciona un Google Cloud proyecto.
Roles necesarios para seleccionar o crear un proyecto
- Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crear un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos (
roles/resourcemanager.projectCreator), que contiene el permisoresourcemanager.projects.create. Obtén más información para otorgar roles.
-
Crea un proyecto de Google Cloud :
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el proyecto Google Cloud que estás creando. -
Selecciona el proyecto Google Cloud que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre de tu Google Cloud proyecto.
Habilita la API de Certificate Authority Service:
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin), que contiene el permisoserviceusage.services.enable. Obtén más información para otorgar roles.gcloud services enable privateca.googleapis.com
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
Configura una ubicación predeterminada para usarla en los comandos
gcloudde esta guía de inicio rápido.gcloud config set privateca/location LOCATIONLos recursos de CA Service, como los grupos de CA y las CA, residen en una sola Google Cloud ubicación que no puedes cambiar después de crear estos recursos.
Crear grupo de CA
Un grupo de autoridades certificadoras (AC) es un conjunto de varias AC. Un grupo de CA permite rotar cadenas de confianza sin interrupciones ni tiempos de inactividad para las cargas de trabajo.
Para crear un grupo de CA en el nivel Enterprise, ejecuta el siguiente comando:
gcloud privateca pools create POOL_ID --location LOCATION --tier "enterprise"
Reemplaza lo siguiente:
- POOL_ID: Es el nombre del grupo de CA.
- LOCATION: Es la ubicación del grupo de AC. Para obtener la lista completa de ubicaciones, consulta Ubicaciones.
Los nombres de recursos pueden contener letras, números, guiones (-) y guiones bajos (_) y tener hasta 63 caracteres.
Crea una AC raíz:
Un grupo de CA está vacío cuando se crea. Para solicitar certificados de un grupo de CA, debes agregar una CA en él.
Para crear una CA raíz y agregarla al grupo de CA que creaste, ejecuta el siguiente comando:
gcloud privateca roots create CA_ID --pool POOL_ID --location LOCATION --subject "CN=Example Prod Root CA,O=Google"
Reemplaza lo siguiente:
- CA_ID: el nombre de la CA raíz
- POOL_ID: Es el nombre del grupo de CA.
- LOCATION: Es la ubicación del grupo de AC. Para obtener la lista completa de ubicaciones, consulta Ubicaciones.
El servicio de CA devuelve el siguiente resultado cuando crea la CA raíz:
Created Certificate Authority [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificateAuthorities/CA_ID]
Para habilitar la CA raíz, ingresa y cuando gcloud CLI te lo solicite.
Opcional: Crea un grupo de CA subordinada
Para crear un grupo de AC subordinado, ejecuta el siguiente comando:
gcloud privateca pools create SUBORDINATE_POOL_ID
--location LOCATION
--tier TIER
Reemplaza lo siguiente:
- SUBORDINATE_POOL_ID: ID del grupo de AC subordinado
- LOCATION: Es la ubicación del grupo de AC subordinado. Para obtener la lista completa de ubicaciones, consulta Ubicaciones.
- TIER: Es el nivel de la CA subordinada, que puede ser de DevOps o empresarial.
Opcional: Crea una CA subordinada firmada por una CA raíz almacenada en Google Cloud
Para crear una CA subordinada en el grupo de AC subordinado que creaste en el paso anterior, ejecuta el siguiente comando:
gcloud privateca subordinates create SUBORDINATE_CA_ID \
--location=LOCATION \
--pool=SUBORDINATE_POOL_ID \
--issuer-pool=POOL_ID \
--issuer-location=ISSUER_LOCATION \
--from-ca=EXISTING_CA_ID \
--kms-key-version projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/KEY_VERSION
Reemplaza lo siguiente:
- SUBORDINATE_CA_ID: Es el ID de la CA subordinada.
- LOCATION: Es la ubicación de la CA subordinada. Para obtener la lista completa de ubicaciones, consulta Ubicaciones.
- SUBORDINATE_POOL_ID: Es el ID del grupo de CA subordinado que creaste en la sección anterior.
- POOL_ID: el ID del grupo de AC principal
- ISSUER_LOCATION: Es la ubicación del certificado.
- EXISTING_CA_ID: ID de la CA de origen
- PROJECT_ID: el ID del proyecto
- LOCATION_ID: Es la ubicación del llavero de claves.
- KEY_RING: 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.
Se devuelve la siguiente instrucción cuando se crea la CA subordinada.
Created Certificate Authority [projects/my-project-pki/locations/us-west1/caPools/SUBORDINATE_POOL_ID/certificateAuthorities/SUBORDINATE_CA_ID].
Habilita la CA subordinada ingresando y cuando se te solicite en gcloud CLI.
Crear un certificado
Para usar la CA recién creada y crear un certificado, haz lo siguiente:
Instala la biblioteca de criptografía de Pyca con el comando
pip.pip install --user "cryptography>=2.2.0"El servicio de CA usa la biblioteca de criptografía de Pyca para generar y almacenar un nuevo par de claves asimétricas en tu máquina local. Esta clave nunca se envía al servicio de CA.
Para permitir que el SDK de Google Cloud use la biblioteca de criptografía de Pyca, debes habilitar los paquetes del sitio.
macOS o Linux
export CLOUDSDK_PYTHON_SITEPACKAGES=1Windows
set CLOUDSDK_PYTHON_SITEPACKAGES=1Crea un certificado.
gcloud privateca certificates create \ --issuer-pool POOL_ID \ --issuer-location ISSUER_LOCATION \ --subject "CN=Example Prod,O=Google" \ --generate-key \ --key-output-file=./key \ --cert-output-file=./cert.pemReemplaza lo siguiente:
- POOL_ID: ID del recurso del grupo de AC que creaste
- ISSUER_LOCATION: Es la ubicación de la autoridad certificadora que emitió el certificado digital.
El servicio de CA devuelve la siguiente respuesta:
Created Certificate [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificates/CERTIFICATE_ID]
Realiza una limpieza
Para realizar la limpieza, borra el grupo de CA, la CA y el proyecto que creaste para esta guía de inicio rápido.
Revoca el certificado.
- CERT_NAME: Es el nombre del certificado que deseas revocar.
- POOL_ID: Es el nombre del grupo de CA que emitió el certificado.
- LOCATION: Es la ubicación del grupo de CA.
Para revocar un certificado, ejecuta el siguiente comando:
gcloud privateca certificates revoke --certificate CERT_NAME --issuer-pool POOL_ID --location LOCATION
Reemplaza lo siguiente:
Borra la CA.
Solo puedes borrar una CA después de revocar todos los certificados que emitió.
Inhabilita la CA.
gcloud privateca roots disable CA_ID --pool=POOL_ID --location=LOCATIONReemplaza lo siguiente:
- CA_ID: ID del recurso de la CA
- POOL_ID: ID del recurso del grupo de CA
- LOCATION: Es la ubicación del grupo de AC. Para obtener la lista completa de ubicaciones, consulta Ubicaciones.
Borra la CA.
gcloud privateca roots delete CA_ID --pool=POOL_ID --location=LOCATION
El estado de la CA cambia a
Deleted. El Servicio de CA borra permanentemente la CA 30 días después de que inicias la eliminación.Borra el grupo de CA.
Solo puedes borrar un grupo de CA después de que se borre de forma permanente la CA que contiene.
gcloud privateca pools delete POOL_ID --location=LOCATIONBorra el proyecto.
Borra un Google Cloud proyecto:
gcloud projects delete PROJECT_ID
¿Qué sigue?
- Obtén más información sobre los grupos de CA.
- Obtén más información para crear un grupo de CA.
- Obtén más información para crear AC.
- Obtén más información para solicitar certificados.
- Obtén más información para controlar el tipo de certificados que puede emitir un grupo de CA.