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 CloudUSER
: 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éproductionEAB_KID
: ID de la clé EABEAB_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éproductionDOMAINS
: 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/
gcloud publicca external-account-keys create
gcloud config unset api_endpoint_overrides/publicca
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID