Ce tutoriel vous explique comment utiliser Certificate Manager pour déployer un certificat mondial géré par Google avec Certificate Authority Service.
Les équilibreurs de charge mondiaux suivants sont compatibles avec les certificats gérés par Google avec Certificate Authority Service :
- Équilibreur de charge d'application externe global
- Équilibreur de charge d'application classique
- Équilibreur de charge réseau proxy externe global
Si vous souhaitez déployer des équilibreurs de charge interrégionaux ou régionaux, consultez les ressources suivantes :
Objectifs
Ce guide vous explique comment effectuer les tâches suivantes :
- Créez un certificat géré par Google avec CA Service à l'aide du gestionnaire de certificats.
- Déployez le certificat sur un équilibreur de charge compatible à l'aide d'un proxy HTTPS cible.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine, Certificate Manager, Certificate Authority APIs.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine, Certificate Manager, Certificate Authority APIs.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Activez l'API CA Service.
- Créez un pool d'autorités de certification. Vous devez créer et activer au moins une autorité de certification dans ce pool.
- Les certificats que vous créez avec Certificate Authority Service ne sont pas approuvés publiquement. Pour émettre des certificats approuvés publiquement, créez des certificats avec une autorisation DNS ou une autorisation d'équilibreur de charge.
Si une règle d'émission de certificats est en vigueur sur le pool d'autorités de certification cible, le provisionnement des certificats peut échouer pour l'une des raisons suivantes :
- La règle d'émission de certificat a bloqué le certificat demandé. Dans ce cas, vous n'êtes pas facturé, car le certificat n'a pas été émis.
- La règle a appliqué au certificat des modifications qui ne sont pas compatibles avec Certificate Manager. Dans ce cas, vous êtes facturé, car le certificat a été émis, même s'il n'est pas entièrement compatible avec le gestionnaire de certificats.
Les certificats TLS gérés par Google peuvent être configurés pour être émis à partir d'un pool d'autorités de certification dans n'importe quelle région.
Propriétaire du gestionnaire de certificats (
roles/certificatemanager.owner
)Obligatoire pour créer et gérer les ressources Certificate Manager.
Administrateur de l'équilibreur de charge Compute (
roles/compute.loadBalancerAdmin
) ou administrateur réseau Compute (roles/compute.networkAdmin
)Obligatoire pour créer et gérer le proxy HTTPS cible.
Administrateur du service CA (
roles/privateca.admin
)Obligatoire pour effectuer des actions dans CA Service.
- Rôles et autorisations pour Certificate Manager.
- Rôles et autorisations IAM de Compute Engine pour Compute Engine.
- Contrôle des accès avec IAM pour CA Service.
Pour créer un équilibreur de charge d'application externe global, consultez Configurer un équilibreur de charge d'application externe global avec des backends de groupe d'instances de VM.
Pour créer un équilibreur de charge d'application classique, consultez Configurer un équilibreur de charge d'application classique avec un groupe d'instances géré d'instances géré.
Pour créer un équilibreur de charge réseau proxy externe global (proxy SSL), consultez Configurer un équilibreur de charge réseau proxy externe global (proxy SSL) avec des backends de groupe d'instances de VM.
Pour créer un équilibreur de charge réseau proxy classique (proxy SSL), consultez Configurer un équilibreur de charge réseau proxy classique (proxy SSL) avec des backends de groupes d'instances de VM.
Avant de suivre les étapes de ce tutoriel, notez les points suivants :
Rôles requis
Assurez-vous de disposer des rôles suivants pour effectuer les tâches de ce tutoriel :
Pour en savoir plus, consultez les ressources suivantes :
Créer l'équilibreur de charge
Ce tutoriel part du principe que vous avez déjà créé et configuré les backends, les vérifications de l'état, les services de backend et les mappages d'URL de l'équilibreur de charge. Si vous avez créé un équilibreur de charge d'application externe, notez le nom du mappage d'URL, car vous en aurez besoin plus tard dans ce tutoriel.
Si vous n'avez pas créé l'équilibreur de charge, consultez les pages suivantes pour en créer un :
Configurer l'intégration de CA Service à Certificate Manager
Pour intégrer CA Service à Certificate Manager, procédez comme suit :
Dans le projet cible Google Cloud , créez un compte de service Certificate Manager :
gcloud beta services identity create --service=certificatemanager.googleapis.com \ --project=PROJECT_ID
Remplacez
PROJECT_ID
par l'ID du projetGoogle Cloud cible.La commande renvoie le nom de l'identité de service créée. Consultez l'exemple ci-dessous :
service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com
Accordez le rôle Demandeur de certificat CA Service (
roles/privateca.certificateRequester
) au compte de service Certificate Manager dans le pool d'autorités de certification cible :gcloud privateca pools add-iam-policy-binding CA_POOL \ --location LOCATION \ --member "serviceAccount:SERVICE_ACCOUNT" \ --role roles/privateca.certificateRequester
Remplacez les éléments suivants :
CA_POOL
: ID du pool d'autorités de certification cible.LOCATION
: emplacement Google Cloud cible.SERVICE_ACCOUNT
: nom complet du compte de service que vous avez créé à l'étape 1.
Créez une ressource de configuration d'émission de certificats pour votre pool d'autorités de certification :
Console
Dans la console Google Cloud , accédez à l'onglet Configurations d'émission sur la page Certificate Manager.
Cliquez sur Créer. La page Créer une configuration d'émission de certificats s'affiche.
Dans le champ Nom, saisissez un nom unique pour la configuration d'émission de certificats.
Facultatif : Dans le champ Description, saisissez une description de la configuration d'émission.
Dans Emplacement, sélectionnez Mondial.
Facultatif : Dans le champ Durée de vie, spécifiez la durée de vie du certificat émis en jours. La valeur doit être comprise entre 21 et 30 jours (inclus).
Facultatif : Dans Pourcentage de la période de rotation, spécifiez le pourcentage de la durée de vie du certificat au cours duquel le processus de renouvellement commence. Pour connaître la plage de valeurs valides, consultez Pourcentage de la durée de vie et de la période de rotation.
Facultatif : Dans la liste Algorithme de clé, sélectionnez l'algorithme de clé à utiliser lors de la génération de la clé privée.
Dans la liste Pool d'autorités de certification, sélectionnez le nom du pool d'autorités de certification à attribuer à cette ressource de configuration d'émission de certificats.
Dans le champ Libellés, spécifiez les libellés à associer au certificat. Pour ajouter un libellé, cliquez sur
Ajouter un libellé, puis spécifiez une clé et une valeur pour votre libellé.Cliquez sur Créer.
gcloud
gcloud certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \ --ca-pool=CA_POOL
Remplacez les éléments suivants :
ISSUANCE_CONFIG_NAME
: nom de la ressource de configuration d'émission de certificat.CA_POOL
: chemin d'accès et nom complets du pool d'autorité de certification que vous souhaitez attribuer à cette ressource de configuration d'émission de certificat.
Pour en savoir plus sur les ressources de configuration d'émission de certificats, consultez Gérer les ressources de configuration d'émission de certificats.
Créer un certificat géré par Google et émis par votre instance de service CA
Pour créer un certificat géré par Google et émis par votre instance CA Service, procédez comme suit :
Console
Dans la console Google Cloud , accédez à la page Certificate Manager.
Dans l'onglet Certificats, cliquez sur Ajouter un certificat.
Dans le champ Nom du certificat, saisissez un nom unique pour le certificat.
Facultatif : Dans le champ Description, saisissez une description du certificat. La description vous permet d'identifier le certificat.
Dans Emplacement, sélectionnez Mondial.
Pour Champ d'application, sélectionnez Par défaut.
Dans le champ Type de certificat, sélectionnez Créer un certificat géré par Google.
Pour Type d'autorité de certification, sélectionnez Privée.
Dans le champ Noms de domaine, spécifiez une liste de noms de domaine du certificat, séparés par des virgules. Chaque nom de domaine doit être un nom de domaine complet, tel que
myorg.example.com
.Sous Sélectionner une configuration d'émission de certificats, sélectionnez le nom de la ressource de configuration d'émission de certificats faisant référence au pool d'AC cible.
Dans le champ Libellés, spécifiez les libellés à associer au certificat. Pour ajouter un libellé, cliquez sur
Ajouter un libellé, puis spécifiez une clé et une valeur pour votre libellé.Cliquez sur Créer.
Le nouveau certificat apparaît dans la liste des certificats.
gcloud
Pour créer un certificat global géré par Google avec Certificate Authority Service, utilisez la commande certificate-manager certificates create
avec l'option issuance-config
:
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="DOMAIN_NAMES" \ --issuance-config=ISSUANCE_CONFIG_NAME
Remplacez les éléments suivants :
CERTIFICATE_NAME
: nom du certificat.DOMAIN_NAME
: nom du domaine cible. Le nom de domaine doit être un nom de domaine complet, tel quemyorg.example.com
.ISSUANCE_CONFIG_NAME
: nom de la ressource de configuration d'émission de certificat qui fait référence au pool d'autorités de certification cible.
API
Créez le certificat en envoyant une requête POST
à la méthode certificates.create
comme suit :
POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME" { "managed": { "domains": ["DOMAIN_NAME"], "issuanceConfig": "ISSUANCE_CONFIG_NAME", } }
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet Google Cloud .CERTIFICATE_NAME
: nom du certificat.DOMAIN_NAME
: nom du domaine cible. Le nom de domaine doit être un nom de domaine complet, tel quemyorg.example.com
.ISSUANCE_CONFIG_NAME
: nom de la ressource de configuration d'émission de certificat qui fait référence au pool d'autorités de certification cible.
Vérifier l'état du certificat
Avant de déployer un certificat sur un équilibreur de charge, vérifiez qu'il est actif. Le passage de l'état du certificat à ACTIVE
peut prendre plusieurs minutes.
Console
Dans la console Google Cloud , accédez à la page Certificate Manager.
Dans l'onglet Certificats, vérifiez l'état du certificat dans la colonne État.
gcloud
Pour vérifier l'état du certificat, exécutez la commande suivante :
gcloud certificate-manager certificates describe CERTIFICATE_NAME
Remplacez CERTIFICATE_NAME
par le nom du certificat géré par Google cible.
Le résultat ressemble à ce qui suit :
createTime: '2021-10-20T12:19:53.370778666Z' expireTime: '2022-05-07T05:03:49Z' managed: domains: - myorg.example.com issuanceConfig: projects/myproject/locations/global/issuanceConfigs/myissuanceConfig state: ACTIVE name: projects/myproject/locations/global/certificates/mycertificate pemCertificate: | -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- sanDnsnames: - myorg.example.com updateTime: '2021-10-20T12:19:55.083385630Z'
Pour connaître la procédure de dépannage, consultez la section Dépannage du Gestionnaire de certificats.
Déployer le certificat sur un équilibreur de charge
Pour déployer le certificat géré par Google au niveau mondial, utilisez un mappage de certificat.
Créer un mappage de certificat
Créez un mappage de certificat qui référence l'entrée de mappage de certificat associée à votre certificat :
gcloud
Pour créer une carte de certificats, utilisez la commande gcloud certificate-manager maps create
:
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
Remplacez CERTIFICATE_MAP_NAME
par le nom du mappage de certificat cible.
Terraform
Pour créer un mappage de certificats, vous pouvez utiliser une ressource google_certificate_manager_certificate_map
.
Créer une entrée de mappage de certificat
Créez une entrée de mappage de certificat et associez-la à votre certificat et à votre mappage de certificat :
gcloud
Pour créer une entrée de mappage de certificat, utilisez la commande gcloud certificate-manager maps entries create
:
gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME" \ --certificates="CERTIFICATE_NAME" \ --hostname="HOSTNAME"
Remplacez les éléments suivants :
CERTIFICATE_MAP_ENTRY_NAME
: nom de l'entrée du mappage de certificats.CERTIFICATE_MAP_NAME
: nom du mappage de certificat auquel l'entrée de mappage de certificat est associée.CERTIFICATE_NAME
: nom du certificat que vous souhaitez associer à l'entrée de mappage de certificat.HOSTNAME
: nom d'hôte que vous souhaitez associer à l'entrée du mappage de certificats.Si vous souhaitez créer un certificat qui couvre à la fois un domaine avec caractère générique et un domaine racine, spécifiez le nom d'hôte avec une racine et un caractère générique, comme
example.com
et*.example.com
. De plus, vous devez spécifier deux entrées de mappage de certificat : une pourexample.com
et l'autre pour*.example.com
.
Terraform
Pour créer une entrée de mappage de certificat avec un domaine racine, utilisez une ressource google_certificate_manager_certificate_map_entry
.
Pour créer une entrée de mappage de certificats avec un domaine générique, utilisez une ressource google_certificate_manager_certificate_map_entry
.
Vérifier que l'entrée du mappage de certificat est active
Vérifiez que l'entrée de mappage de certificat est active avant d'associer le mappage de certificat correspondant au proxy cible.
Pour vérifier l'entrée de mappage de certificat, utilisez la commande gcloud certificate-manager maps entries describe
:
gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME"
Remplacez les éléments suivants :
CERTIFICATE_MAP_ENTRY_NAME
: nom de l'entrée du mappage de certificats.CERTIFICATE_NAME
: nom du certificat que vous souhaitez associer à l'entrée de mappage de certificat.
Le résultat ressemble à ce qui suit :
certificates: createTime: '2021-09-06T10:01:56.229472109Z' hostname: example.com name: projects/my-project/locations/global/certificateMaps/myCertMap/certificateMapEntries/myCertMapEntry state: ACTIVE updateTime: '2021-09-06T10:01:58.277031787Z'
Associer le mappage de certificats au proxy cible
Vous pouvez associer la carte de certificats à un nouveau proxy cible ou à un proxy cible existant.
gcloud
Pour associer le mappage de certificats à un nouveau proxy cible, utilisez la commande gcloud compute target-https-proxies create
:
gcloud compute target-https-proxies create PROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME" \ --url-map="URL_MAP" \ --global
Remplacez les éléments suivants :
PROXY_NAME
: nom du proxy cible.CERTIFICATE_MAP_NAME
: nom du mappage de certificats faisant référence à l'entrée de mappage de certificat et au certificat associé.URL_MAP
: nom du mappage d'URL
Pour associer le mappage de certificats à un proxy HTTPS cible existant, utilisez la commande gcloud compute target-https-proxies update
. Si vous ne connaissez pas le nom du proxy cible existant, accédez à la page Proxys cibles et notez le nom du proxy cible.
gcloud compute target-https-proxies update PROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME" \ --global
Après avoir créé ou mis à jour le proxy cible, exécutez la commande suivante pour le vérifier :
gcloud compute target-https-proxies list
Terraform
Pour associer la carte de certificats au proxy cible, vous pouvez utiliser une ressource google_compute_target_https_proxy
.
Lorsque vous configurez un proxy cible, si vous associez des certificats TLS (SSL) directement et également via un mappage de certificats, le proxy utilise les certificats référencés par le mappage de certificats et ignore les certificats TLS (SSL) associés directement.
Résoudre les problèmes liés aux certificats émis par CA Service
Pour connaître les étapes de dépannage, consultez Problèmes liés aux certificats émis par une instance de service CA.
Effectuer un nettoyage
Pour éviter que les ressources utilisées dans ce tutoriel ne soient facturées sur votre compte Google Cloud , supprimez-les.
Supprimez l'équilibreur de charge et ses ressources.
Consultez la section Nettoyer une configuration d'équilibrage de charge
Supprimez ou dissociez la carte de certificat du proxy.
Pour supprimer la carte de certificats, exécutez la commande suivante :
gcloud compute target-https-proxies delete PROXY_NAME
Si vous souhaitez conserver le proxy HTTPS cible, dissociez le mappage de certificats du proxy. Avant de dissocier la carte de certificat, tenez compte des points suivants :
- Si des certificats TLS (SSL) sont associés directement au proxy, le fait de dissocier la carte de certificats entraîne la reprise de l'utilisation de ces certificats TLS (SSL) directement associés par le proxy.
- Si aucun certificat TLS (SSL) n'est directement associé au proxy, la carte de certificats ne peut pas être dissociée du proxy. Vous devez d'abord associer au moins un certificat TLS (SSL) directement au proxy avant de pouvoir dissocier la carte de certificats.
Pour dissocier la carte de certificats, exécutez la commande suivante :
gcloud compute target-https-proxies update PROXY_NAME \ --clear-certificate-map
Remplacez
PROXY_NAME
par le nom du proxy cible.Supprimez l'entrée de mappage de certificat du mappage de certificats :
gcloud certificate-manager maps entries delete CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME"
Remplacez les éléments suivants :
CERTIFICATE_MAP_ENTRY_NAME
: nom de l'entrée du mappage de certificats.CERTIFICATE_MAP_NAME
: nom du mappage de certificats.
Supprimez le mappage de certificat :
gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
Remplacez
CERTIFICATE_MAP_NAME
par le nom du mappage de certificat.Supprimez le certificat géré par Google :
Console
Dans la console Google Cloud , accédez à la page Certificate Manager.
Dans l'onglet Certificats, cochez la case du certificat.
Cliquez sur Supprimer.
Dans la boîte de dialogue qui s'affiche, cliquez sur Supprimer pour confirmer.
gcloud
gcloud certificate-manager certificates delete CERTIFICATE_NAME
Remplacez
CERTIFICATE_NAME
par le nom du certificat cible.Supprimez la ressource de configuration d'émission de certificats :
Console
Dans la console Google Cloud , accédez à l'onglet Configurations d'émission sur la page Certificate Manager.
Cochez la case de la ressource de configuration d'émission que vous souhaitez supprimer.
Cliquez sur Supprimer.
Dans la boîte de dialogue qui s'affiche, cliquez sur Supprimer pour confirmer.
gcloud
gcloud certificate-manager issuance-configs delete ISSUANCE_CONFIG_NAME
Remplacez
ISSUANCE_CONFIG_NAME
par le nom de la ressource de configuration de l'émission de certificats cible.Supprimez le pool d'autorités de certification.
Pour supprimer le pool d'autorités de certification ou désactiver la dernière autorité de certification activée dans un pool d'autorités de certification référencé par une ressource de configuration d'émission de certificats, supprimez toutes les ressources de configuration d'émission de certificats qui font référence au pool d'autorités de certification. Pour en savoir plus, consultez Supprimer un pool d'AC.