Demander un certificat à l'aide d'une Public CA et d'un client ACME

Ce tutoriel vous explique comment demander un certificat TLS auprès d'Public Certificate Authority à l'aide de la Google Cloud CLI. Pour en savoir plus sur les autorités de certification racine et intermédiaires utilisées par Public Certificate Authority, consultez Google Trust Services. La demande de certificats auprès de Public CA est sans frais.

Avant de commencer

  • Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisezla en exécutant la commande suivante :

    gcloud init

    Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  • Créez ou sélectionnez un Google Cloud projet.

    Rôles requis pour sélectionner ou créer un projet

    • Sélectionner un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
    • Créer un projet : pour créer un projet, vous avez besoin du rôle Créateur de projet (roles/resourcemanager.projectCreator), qui contient l'autorisation resourcemanager.projects.create. Découvrez comment attribuer des rôles.
    • Créez un Google Cloud projet :

      gcloud projects create PROJECT_ID

      Remplacez PROJECT_ID par le nom du Google Cloud projet que vous créez.

    • Sélectionnez le Google Cloud projet que vous avez créé :

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre Google Cloud projet.

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

    Pour attribuer ce rôle, 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 Google Cloud projet
    • 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 page Gérer l'accès aux projets, aux dossiers et aux organisations.

  • Activez l'API Public CA :

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation via le rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation via le rôle Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

    gcloud services enable publicca.googleapis.com

Installer un client

Pour commencer à utiliser Public CA, vous devez installer un client ACME. Les instructions suivantes utilisent Certbot comme client ACME. Vous pouvez utiliser n'importe quel autre client ACME si celui-ci est compatible avec la liaison de compte externe (EAB).

Pour installer Certbot, consultez les instructions Certbot.

Veillez à diriger votre client vers le serveur Public CA. La première fois que le client ACME interagit avec Public CA, le client génère une nouvelle paire de clés et envoie la clé publique à Public CA.

Demander un ID de clé EAB et un HMAC

Après avoir installé un client ACME, vous devez enregistrer votre compte ACME auprès de Public CA pour demander des certificats à Public CA. Un secret EAB peut vous aider à enregistrer votre compte ACME auprès de Public CA. Un secret EAB se compose d'un ID de clé et d'un code d'authentification d'une empreinte cryptographique de message (HMAC, Hash-based 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 dans l'environnement de production de Public CA. Dans le corps de la réponse, le champ 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 dans les sept jours. Le compte ACME enregistré à l'aide d'un secret EAB n'a pas de date d'expiration.

Enregistrer un compte ACME

Cette section explique comment enregistrer un compte ACME auprès de Public CA en fournissant le secret EAB que vous venez d'obtenir.

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

Pour enregistrer un compte ACME auprès de Public CA et lier le compte ACME au Google Cloud projet que vous avez utilisé pour demander le secret EAB, exécutez 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 clé EAB
  • EAB_HMAC_KEY : clé HMAC EAB

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