Émettre un certificat à l'aide de la Google Cloud CLI

Cette page explique comment créer un pool d'autorités de certification (CA) et d'émettre un certificat à l'aide de la Google Cloud CLI.

Le service CA vous permet de déployer et de gérer des autorités de certification privées sans avoir à gérer de l'infrastructure.

Avant de commencer

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

  • Configurez un emplacement par défaut à utiliser dans les commandes gcloud de ce guide de démarrage rapide.

    gcloud config set privateca/location LOCATION
    

    Les ressources du service CA, telles que les pools d'autorités de certification et les autorités de certification, résident dans un seul Emplacement Google Cloud que vous ne pourrez plus modifier une fois à la création de ces ressources.

Créer un pool d'autorités de certification

Un pool d'autorités de certification est un ensemble de plusieurs autorités de certification. Un pool d'autorités de certification permet d'alterner les chaînes de confiance sans interruption ni temps d'arrêt pour charges de travail.

Pour créer un pool d'autorités de certification au niveau Enterprise, exécutez la commande suivante:

gcloud privateca pools create POOL_ID --tier "enterprise"

Remplacez POOL_ID par le nom du pool d'autorités de certification.

Les noms de toutes les ressources du service CA ne doivent contenir que le paramètre les caractères autorisés, à savoir les lettres, les chiffres, les traits d'union et les traits de soulignement. La longueur maximale autorisée pour un nom est de 63 caractères.

Créer une autorité de certification racine

Un pool d'autorités de certification est vide lors de la création. Pour demander des certificats à partir d'un pool d'autorités de certification, vous devez y ajouter une autorité de certification.

Pour créer une autorité de certification racine et l'ajouter au pool d'autorités de certification que vous avez créé, exécutez la commande suivante :

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

Remplacez les éléments suivants :

  • CA_ID: nom de l'autorité de certification racine.
  • POOL_ID: nom du pool d'autorités de certification.

Le service CA renvoie la commande suivante lorsqu'il crée l'autorité de certification racine :

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

Activez l'autorité de certification racine en saisissant y lorsque vous y êtes invité par la gcloud CLI.

Maintenant que vous disposez d'un pool d'autorités de certification avec une autorité de certification racine, vous pouvez créer certificats.

Créer un certificat

Pour utiliser l'autorité de certification nouvellement créée afin de créer un certificat, procédez comme suit:

  1. Installez la bibliothèque de cryptographie Pyca à l'aide de la commande pip.

      pip install --user "cryptography>=2.2.0"
    

    CA Service utilise la bibliothèque de cryptographie Pyca pour générer et stocker une nouvelle paire de clés asymétrique sur votre machine locale. Cette clé n'est jamais envoyée au service d'autorité de certification.

  2. Pour autoriser Google Cloud SDK à utiliser la bibliothèque de cryptographie Pyca, vous devez activer les packages de site.

    macOS ou Linux

    export CLOUDSDK_PYTHON_SITEPACKAGES=1
    

    Windows

    set CLOUDSDK_PYTHON_SITEPACKAGES=1
    
  3. Créez un certificat.

      gcloud privateca certificates create \
          --issuer-pool POOL_ID \
          --subject "CN=Example Prod,O=Google" \
          --generate-key \
          --key-output-file=./key \
          --cert-output-file=./cert.pem
    

    Remplacez POOL_ID par l'ID de ressource du pool de certificats d'autorité de certification que vous avez créé.

    CA Service renvoie la réponse suivante:

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

Effectuer un nettoyage

Effectuez un nettoyage en supprimant le pool d'autorités de certification, l'autorité de certification et le projet que vous avez créé pour cela de ce guide de démarrage rapide.

  1. Révoquez le certificat.

      Pour révoquer un certificat, exécutez la commande suivante:

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

      Remplacez les éléments suivants :

      • CERT_NAME: nom du certificat que vous souhaitez révoquer.
      • POOL_ID: nom du pool d'autorités de certification ayant émis le certificat.
  2. Supprimez l'autorité de certification.

    Vous ne pouvez supprimer une autorité de certification qu'après avoir révoqué tous les certificats émis par celui-ci.

    1. Désactivez l'autorité de certification.

      gcloud privateca roots disable CA_ID --pool=POOL_ID
      

      Remplacez les éléments suivants :

      • CA_ID : ID de la ressource de l'autorité de certification.
      • POOL_ID: ID de ressource du pool d'autorités de certification.
    2. Supprimez l'autorité de certification.

      gcloud privateca roots delete CA_ID --pool=POOL_ID
      

    L'état de l'autorité de certification passe à Deleted. Le service d'autorité de certification supprime définitivement l'autorité de certification 30 jours après la suppression.

  3. Supprimez le pool d'autorités de certification.

    Vous ne pouvez supprimer un pool d'autorités de certification qu'une fois que l'autorité de certification qu'il contient est définitivement supprimés.

    gcloud privateca pools delete POOL_ID
    
  4. Supprimez le projet.

      Delete a Google Cloud project:

      gcloud projects delete PROJECT_ID

Étape suivante