Demander un certificat à l'aide d'une autorité de certification publique et d'un client ACME

Ce tutoriel vous explique comment demander un certificat TLS auprès d'une autorité de certification publique à l'aide de la Google Cloud CLI. Pour en savoir plus sur les autorités de certification racine et intermédiaires utilisées par l'autorité de certification publique, consultez Google Trust Services. Aucuns frais pour demander des certificats à partir d’une autorité de certification publique.

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.

  • Assurez-vous de disposer du rôle IAM "Propriétaire" (roles/owner) ou "Créateur de clés de compte externe de l'autorité de certification publique" (publicca.externalAccountKeyCreator).

    Pour attribuer le rôle IAM "Créateur de clés de compte externe de l'autorité de certification publique" (publicca.externalAccountKeyCreator), exécutez la commande suivante :

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=user:USER \
      --role=roles/publicca.externalAccountKeyCreator
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet Google Cloud
    • USER : identifiant unique de l'utilisateur auquel vous souhaitez attribuer le rôle IAM

    Pour en savoir plus sur l'attribution d'un rôle IAM, consultez la section Gérer l'accès à des projets, des dossiers organisations.

  • Enable the Public CA API:

    gcloud services enable publicca.googleapis.com

Installer un client

Pour commencer à utiliser Public CA, vous devez installer un client ACME. La les instructions suivantes utilisent Certbot en tant que client ACME. Vous pouvez utiliser n'importe quel autre client ACME si celui-ci est compatible avec l'association de comptes externes (EAB).

Pour installer Certbot, consultez les instructions Certbot.

Assurez-vous de rediriger votre client vers le serveur de l'autorité de certification publique. La première fois que le client ACME interagit avec l'autorité de certification publique, il génère une nouvelle paire de clés et envoie la clé publique à l'autorité de certification publique.

Demander un ID de clé EAB et un HMAC

Après avoir installé un client ACME, vous devez enregistrer votre compte ACME auprès d’Public CA pour demander des certificats à partir d’une AC publique. Un secret EAB peut vous aider à enregistrer votre compte ACME auprès de Autorité de certification publique. Un secret EAB se compose d'un ID de clé et d'une clé Code HMAC (Message Authentication Code).

Vous pouvez utiliser l'API Public CA ou la Google Cloud CLI pour demander un secret EAB.

Pour demander un ID de clé EAB et un HMAC, exécutez la commande suivante :

gcloud publicca external-account-keys create

Cette commande renvoie un secret EAB valide sur l'instance d'une autorité de certification publique. Dans le corps de la réponse, le keyId contient l'ID de clé EAB et le champ b64MacKey contient le HMAC EAB.

Vous devez utiliser un secret EAB dans les sept jours suivant son obtention. Le secret EAB est invalidé si vous ne l'utilisez pas sous sept jours. Le compte ACME enregistré à l'aide d'un secret EAB n'a pas d'expiration.

Enregistrer un compte ACME

Cette section explique comment enregistrer un compte ACME auprès d'une autorité de certification publique en fournissant le secret EAB que vous venez d'obtenir.

Utilisez un client ACME standard pour enregistrer un compte ACME, puis fournissez l'ID de clé et le HMAC EAB lors de l'enregistrement.

Pour créer un compte ACME auprès de Public CA et lui lier l'ACME au projet Google Cloud que vous avez utilisé pour demander le secret EAB, exécutez la la commande suivante:

certbot register \
    --email "EMAIL_ADDRESS" \
    --no-eff-email \
    --server "SERVER" \
    --eab-kid "EAB_KID" \
    --eab-hmac-key "EAB_HMAC_KEY"

Remplacez les éléments suivants :

  • EMAIL_ADDRESS : votre adresse e-mail.
  • SERVER : URL du répertoire ACME pour l'environnement de production ou de préproduction
  • EAB_KID: ID de la clé EAB
  • EAB_HMAC_KEY: clé HMAC EAB

Le tableau suivant fournit la description et l'URL du répertoire ACME pour le de production et de préproduction:

Environnement Description URL de l'annuaire ACME
Production L'environnement de production vous permet d'obtenir des certificats publiquement approuvés. https://dv.acme-v02.api.pki.goog/directory
Préproduction L'environnement de préproduction renvoie des certificats qui ne sont pas approuvés publiquement. L'environnement de préproduction effectue les mêmes vérifications de validation que l'environnement de production. Vous pouvez utiliser l'environnement de préproduction pour l'intégration ou tout autre type de test. https://dv.acme-v02.test-api.pki.goog/directory

Vous ne pouvez enregistrer qu'un seul compte ACME avec un code secret EAB. Après avoir enregistré un compte ACME à l'aide d'un secret EAB, celui-ci n'est plus valide et vous ne pouvez pas le réutiliser. Si vous souhaitez enregistrer plusieurs comptes ACME, vous devez demander un secret EAB unique pour chacun d'eux.

Demander des certificats

Une fois que l'autorité de certification publique a validé votre contrôle de la cible du certificat et reconnaît que votre client ACME fonctionne comme prévu pour effectuer les opérations de gestion des certificats, vous pouvez utiliser les flux de travail ACME habituels pour demander, renouveler et révoquer des certificats. Vous pouvez effectuer ces opérations en utilisant votre client ACME. Pour demander et renouveler un certificat, vous devez effectuer un défi ACME, tel que le défi DNS manuel.

Pour utiliser le défi DNS manuel pour demander un certificat, exécutez la commande suivante :

certbot certonly \
    --manual \
    --preferred-challenges "dns-01" \
    --server "SERVER" \
    --domains "DOMAINS"

Remplacez les éléments suivants :

  • SERVER : URL du répertoire ACME pour l'environnement de production ou de préproduction
  • DOMAINS: liste des domaines séparés par une virgule pour lesquels vous demander des certificats

Effectuer un nettoyage

Si vous n'avez plus besoin de certificats pour vos domaines, supprimez le projet que vous avez créé.

Préproduction

Vous pouvez utiliser l'environnement de préproduction de l'autorité de certification publique pour demander des certificats à des fins de test. Les certificats émis par la préproduction d'environnement à une autorité de certification racine de test. Les certificats de l'environnement de préproduction ne seront pas approuvés par des navigateurs ou d'autres qui n'ont pas été configurés pour approuver le certificat racine de préproduction. Pour obtenir un secret EAB valide dans l'environnement de préproduction, remplacez le point de terminaison de l'API par celui de l'environnement de préproduction :

gcloud config set api_endpoint_overrides/publicca https://preprod-publicca.googleapis.com/
Exécutez ensuite la commande de création de clé de compte pour créer une clé de préproduction:
gcloud publicca external-account-keys create
Pour revenir au point de terminaison de l'environnement de production, exécutez la commande suivante : commande:
gcloud config unset api_endpoint_overrides/publicca

Delete a Google Cloud project:

gcloud projects delete PROJECT_ID

Étape suivante