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 CA te permite implementar y administrar AC privadas sin administrar la infraestructura.
Antes de comenzar
-
Instala la 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
- Seleccionar 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 elresourcemanager.projects.createpermiso. 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 Google Cloud proyecto que estás creando. -
Selecciona el Google Cloud proyecto que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre de tu Google Cloud proyecto de.
Habilita la API de Certificate Authority Service:
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el permiso
serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.gcloud services enable privateca.googleapis.com
Verifica que la facturación esté habilitada para tu Google Cloud proyecto.
Configura una ubicación predeterminada para usarla en los comandos de
gcloudde esta guía de inicio rápido.gcloud config set privateca/location LOCATIONLos recursos del servicio de CA, 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 autoridad certificadora (AC) es un conjunto de varias AC. Un grupo de CA ofrece la capacidad de rotar cadenas de confianza sin interrupciones ni tiempos de inactividad en 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 CA. Para obtener la lista completa de ubicaciones, consulta Ubicaciones.
Los nombres de los recursos pueden contener letras, números, guiones (-) y guiones bajos (_), y pueden 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 CA. Para obtener la lista completa de ubicaciones, consulta Ubicaciones.
El servicio de CA muestra 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 subordinado
Para crear un grupo de CA subordinado, ejecuta el siguiente comando:
gcloud privateca pools create SUBORDINATE_POOL_ID
--location LOCATION
--tier TIER
Reemplaza lo siguiente:
- SUBORDINATE_POOL_ID: el ID del grupo de CA subordinado
- LOCATION: Es la ubicación del grupo de CA subordinado. Para obtener la lista completa de ubicaciones, consulta Ubicaciones.
- TIER: el nivel de CA subordinado, ya sea devops o enterprise
Opcional: Crea una CA subordinada firmada por una CA raíz almacenada en Google Cloud
Para crear una CA subordinada en el grupo de CA 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: 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: el ID del grupo de CA subordinado que creaste en la sección anterior
- POOL_ID: el ID del grupo de CA superior
- ISSUER_LOCATION: la ubicación del certificado
- EXISTING_CA_ID: el ID de la CA de origen
- PROJECT_ID: El ID del proyecto
- LOCATION_ID: 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: la versión de la clave
Se muestra 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].
Para habilitar la CA subordinada, ingresa y cuando gcloud CLI te lo solicite.
Crear un certificado
Para usar la CA recién creada para 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: el ID de recurso del grupo de CA que creaste
- ISSUER_LOCATION: la ubicación de la autoridad certificadora que emitió el certificado digital
El servicio de CA muestra la siguiente respuesta:
Created Certificate [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificates/CERTIFICATE_ID]
Limpia
Limpia el grupo de CA, la CA y el proyecto que creaste para esta guía de inicio rápido.
Revoca el certificado.
- CERT_NAME: el nombre del certificado que deseas revocar
- POOL_ID: el nombre del grupo de CA que emitió el certificado
- LOCATION: 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: el ID de recurso de la CA
- POOL_ID: el ID de recurso del grupo de CA
- LOCATION: Es la ubicación del grupo de CA. 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 la CA de forma permanente 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 la CA que contiene se borre de forma permanente.
gcloud privateca pools delete POOL_ID --location=LOCATIONBorra el proyecto.
Borra un Google Cloud proyecto:
gcloud projects delete PROJECT_ID
¿Qué sigue?
- Más información sobre los grupos de CA.
- Más información para crear un grupo de CA.
- Más información sobre la creación de AC.
- Obtén más información para solicitar certificados.
- Descubre cómo puedes controlar el tipo de certificados que puede emitir un grupo de CA issue.