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 initSi 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'autorisationresourcemanager.projects.create. Découvrez comment attribuer des rôles.
-
Créez un Google Cloud projet :
gcloud projects create PROJECT_ID
Remplacez
PROJECT_IDpar 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_IDpar 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 projetUSER: 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-mailSERVER: URL du répertoire ACME pour l'environnement de production ou de préproductionEAB_KID: ID de clé EABEAB_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 :
| Environnement | Description | URL du répertoire 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 publiquement approuvés. 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 secret EAB. Une fois que vous avez enregistré un compte ACME à l'aide d'un secret EAB, ce dernier devient invalide et vous ne pouvez plus 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 Public CA a validé votre contrôle de la cible du certificat et confirmé que votre client ACME fonctionne comme prévu pour effectuer des opérations de gestion des certificats, vous pouvez utiliser les workflows ACME standards pour demander, renouveler et révoquer des certificats. Vous pouvez effectuer ces opérations à l'aide de votre client ACME. Pour demander et renouveler un certificat, vous devez relever un défi ACME, tel que le défi DNS manuel.
Pour utiliser le défi DNS manuel afin de 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 de domaines séparés par une virgule pour lesquels vous demandez des certificats
Libérer de l'espace
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 Public CA pour demander des certificats à des fins de test. Les certificats émis par l'environnement de préproduction sont chaînés à une autorité de certification racine de test. Les certificats de l'environnement de préproduction ne seront pas approuvés par les navigateurs ni par les autres clients 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
Supprimez un Google Cloud projet :
gcloud projects delete PROJECT_ID