Emitir un certificado con Google Cloud CLI

En esta página se explica cómo puedes generar o emitir certificados a través de Servicio de Autoridades de Certificación mediante la CLI de Google Cloud.

El servicio de autoridades de certificación te permite desplegar y gestionar autoridades de certificación privadas sin tener que gestionar ninguna infraestructura.

Antes de empezar

  • Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

    gcloud init

    Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  • Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  • Enable the Certificate Authority Service API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable privateca.googleapis.com

  • Verify that billing is enabled for your Google Cloud project.

  • Configura una ubicación predeterminada para usarla en los comandos gcloud de esta guía de inicio rápido.

    gcloud config set privateca/location LOCATION
    

    Los recursos del servicio de AC, como los grupos de ACs y las ACs, se encuentran en una sola Google Cloud ubicación que no puedes cambiar después de crear estos recursos.

Crear un grupo de autoridades de certificación

Un grupo de autoridades de certificación (CA) es un conjunto de varias CAs. Un pool de ACs permite rotar cadenas de confianza sin que se produzcan interrupciones ni periodos de inactividad en las cargas de trabajo.

Para crear un grupo de CAs en el nivel Enterprise, ejecuta el siguiente comando:

gcloud privateca pools create POOL_ID --location LOCATION --tier "enterprise"

Haz los cambios siguientes:

  • POOL_ID: el nombre del grupo de autoridades de certificación.
  • LOCATION: la ubicación del grupo de autoridades de certificación. Para ver la lista completa de ubicaciones, consulta Ubicaciones.

Los nombres de todos los recursos de CA Service solo pueden contener los caracteres permitidos, que son todas las letras, los números, los guiones y los guiones bajos. La longitud máxima permitida para el nombre es de 63 caracteres.

Crear una CA raíz

Un grupo de AC está vacío al crearse. Para solicitar certificados de un grupo de ACs, debes añadir una AC.

Para crear una AC raíz y añadirla al grupo de ACs que has creado, ejecuta el siguiente comando:

gcloud privateca roots create CA_ID --pool POOL_ID --location LOCATION --subject "CN=Example Prod Root CA, O=Google"

Haz los cambios siguientes:

  • CA_ID: el nombre de la CA raíz.
  • POOL_ID: el nombre del grupo de autoridades de certificación.
  • LOCATION: la ubicación del grupo de autoridades de certificación. Para ver la lista completa de ubicaciones, consulta Ubicaciones.

El Servicio de AC devuelve el siguiente comando cuando crea la AC raíz:

Created Certificate Authority [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificateAuthorities/CA_ID]

Habilita la CA raíz introduciendo y cuando te lo pida la CLI de gcloud.

Opcional: Crear un grupo de autoridades de certificación subordinadas

Para crear un grupo de CAs subordinadas, ejecuta el siguiente comando:

    gcloud privateca pools create SUBORDINATE_POOL_ID
        --location LOCATION
        --tier TIER

Haz los cambios siguientes:

  • SUBORDINATE_POOL_ID: ID del grupo de CAs subordinado.
  • LOCATION: la ubicación del grupo de ACs subordinadas. Para ver la lista completa de ubicaciones, consulta Ubicaciones.
  • TIER: el nivel de la AC subordinada, que puede ser de nivel empresarial o de DevOps.

Opcional: Crea una AC subordinada firmada por una AC raíz almacenada en Google Cloud

Para crear una AC subordinada en el grupo de ACs subordinadas que has creado 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 \"

Haz los cambios siguientes:

  • SUBORDINATE_CA_ID: el ID de la AC subordinada.
  • LOCATION: la ubicación de la AC subordinada. Para ver la lista completa de ubicaciones, consulta Ubicaciones.
  • SUBORDINATE_POOL_ID: el ID del pool de ACs subordinadas que has creado en la sección anterior.
  • POOL_ID: ID del grupo de autoridades de certificación principal.
  • ISSUER_LOCATION: la ubicación del certificado.
  • EXISTING_CA_ID: el ID de la AC de origen.
  • PROJECT_ID: el ID del proyecto.
  • LOCATION_ID: la ubicación del conjunto de claves.
  • KEY_RING: el nombre del conjunto de claves en el que se encuentra la clave.
  • KEY: el nombre de la clave.
  • KEY_VERSION: la versión de la clave.

Se devuelve la siguiente instrucción cuando se crea la AC subordinada.

Created Certificate Authority [projects/my-project-pki/locations/us-west1/caPools/SUBORDINATE_POOL_ID/certificateAuthorities/SUBORDINATE_CA_ID].

Habilita la AC subordinada introduciendo y cuando te lo pida la CLI de gcloud.

Crear un certificado

Para usar la AC recién creada y crear un certificado, sigue estos pasos:

  1. Instala la biblioteca de criptografía Pyca con el comando pip.

      pip install --user "cryptography>=2.2.0"
    

    El servicio de AC usa la biblioteca de criptografía 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.

  2. Para permitir que el SDK de Google Cloud use la biblioteca de criptografía Pyca, debes habilitar los paquetes de sitios.

    macOS o Linux

    export CLOUDSDK_PYTHON_SITEPACKAGES=1
    

    Windows

    set CLOUDSDK_PYTHON_SITEPACKAGES=1
    
  3. Crea 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.pem
    

    Haz los cambios siguientes:

    • POOL_ID: el ID de recurso del grupo de autoridades de certificación que has creado.
    • ISSUER_LOCATION: la ubicación de la autoridad de certificación que emitió el certificado digital.

    El Servicio de Autoridades de Certificación devuelve la siguiente respuesta:

    Created Certificate [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificates/CERTIFICATE_ID]
    

Limpieza

Para limpiar, elimina el grupo de autoridades de certificación, la autoridad de certificación y el proyecto que has creado para esta guía de inicio rápido.

  1. Revoca el certificado.

      Para revocar un certificado, ejecuta el siguiente comando:

       gcloud privateca certificates revoke --certificate CERT_NAME
       --issuer-pool POOL_ID --location 
      LOCATION
        

      Haz los cambios siguientes:

      • CERT_NAME: el nombre del certificado que quieres revocar.
      • POOL_ID: el nombre del grupo de autoridades de certificación que emitió el certificado.
      • LOCATION: la ubicación del grupo de autoridades de certificación.
  2. Elimina la AC.

    Solo puedes eliminar una AC después de haber revocado todos los certificados que haya emitido.

    1. Inhabilita la AC.

      gcloud privateca roots disable CA_ID --pool=POOL_ID --location=LOCATION
      

      Haz los cambios siguientes:

      • CA_ID: el ID de recurso de la autoridad de certificación.
      • POOL_ID: el ID de recurso del grupo de autoridades de certificación.
      • LOCATION: la ubicación del grupo de autoridades de certificación. Para ver la lista completa de ubicaciones, consulta Ubicaciones.
    2. Elimina la AC.

      gcloud privateca roots delete CA_ID --pool=POOL_ID --location=LOCATION
      

    El estado de la AC cambia a Deleted. El servicio de CA elimina definitivamente la CA 30 días después de que inicies la eliminación.

  3. Elimina el grupo de ACs.

    Solo puedes eliminar un grupo de ACs después de que la AC que contiene se haya eliminado de forma permanente.

    gcloud privateca pools delete POOL_ID --location=LOCATION
    
  4. Elimina el proyecto.

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

Siguientes pasos