Emite un certificado con Google Cloud CLI

En esta página, se explica cómo puedes generar o emitir certificados a través del servicio de la AC con Google Cloud CLI.

El servicio de AC te permite implementar y administrar AC privadas sin administrar la infraestructura.

Antes de comenzar

  • Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init
  • Create or select a Google Cloud project.

    • 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:

    gcloud services enable privateca.googleapis.com

  • Make sure that billing is enabled for your Google Cloud project.

  • Configura una ubicación predeterminada para usarla en los comandos gcloud en este instructivo.

    gcloud config set privateca/location LOCATION
    

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

Crear grupo de CA

Un grupo de autoridades certificadoras (AC) es un conjunto de varias AC. Un grupo de AC 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 empresarial, 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 AC.
  • LOCATION: Es la ubicación del grupo de AC. Para obtener la lista completa de ubicaciones, consulta Ubicaciones.

Los nombres de todos los recursos del servicio de AC deben contener solo los caracteres permitidos, que son todas las letras, números, guiones y guiones bajos. La longitud máxima permitida para un nombre es de 63 caracteres.

Crea una AC raíz:

Un grupo de AC está vacío cuando se crea. Para solicitar certificados de un grupo de AC, debes agregar una AC en él.

Para crear una AC raíz y agregarla al grupo de AC 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: Es el nombre de la AC raíz.
  • POOL_ID: Es el nombre del grupo de AC.
  • LOCATION: Es la ubicación del grupo de AC. Para obtener la lista completa de ubicaciones, consulta Ubicaciones.

El servicio de AC muestra el siguiente comando cuando crea la AC raíz:

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

Para habilitar la AC raíz, ingresa y cuando se te solicite en gcloud CLI.

Opcional: Crea un grupo de AC subordinado

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: Es el 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 AC subordinado, ya sea devops o empresarial.

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

Para crear una AC 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 AC subordinada.
  • LOCATION: Es la ubicación de la AC subordinada. Para obtener la lista completa de ubicaciones, consulta Ubicaciones.
  • SUBORDINATE_POOL_ID: el ID del grupo de AC subordinado que creaste en la sección anterior.
  • POOL_ID: Es el ID del grupo de AC superior.
  • ISSUER_LOCATION: Es la ubicación del certificado.
  • EXISTING_CA_ID: Es el ID de la AC de origen.
  • 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.

Se muestra la siguiente sentencia cuando se crea la AC subordinada.

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

Para habilitar la AC subordinada, ingresa y cuando se te solicite en gcloud CLI.

Crear un certificado

Para usar la AC recién creada y crear un certificado, haz lo siguiente:

  1. Instala la biblioteca de criptografía de 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 AC.

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

    export CLOUDSDK_PYTHON_SITEPACKAGES=1
    
    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
    

    Reemplaza lo siguiente:

    • POOL_ID: Es el ID del recurso del grupo de AC que creaste.
    • ISSUER_LOCATION: La ubicación de la AC que emitió el certificado digital.

    El servicio de AC muestra la siguiente respuesta:

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

Limpia

Para realizar la limpieza, borra el grupo de AC, la AC y el proyecto que creaste 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
        

      Reemplaza lo siguiente:

      • CERT_NAME: Es el nombre del certificado que deseas revocar.
      • POOL_ID: Es el nombre del grupo de AC que emitió el certificado.
      • LOCATION: Es la ubicación del grupo de AC.
  2. Borra la AC.

    Solo puedes borrar una AC después de revocar todos los certificados que emitió.

    1. Inhabilita la AC.

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

      Reemplaza lo siguiente:

      • CA_ID: El ID de recurso de la AC.
      • POOL_ID: Es el ID del recurso del grupo de AC.
      • LOCATION: Es la ubicación del grupo de AC. Para obtener la lista completa de ubicaciones, consulta Ubicaciones.
    2. Borra la AC.

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

    El estado de la AC cambia a Deleted. El servicio de AC borra la AC de forma permanente 30 días después de que inicias la eliminación.

  3. Borra el grupo de AC.

    Solo puedes borrar un grupo de AC después de que se borre de forma permanente la AC que contiene.

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

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

¿Qué sigue?