Ce tutoriel vous explique comment utiliser Certificate Manager pour déployer un certificat global géré par Google avec une autorisation d'équilibreur de charge.
L'autorisation de l'équilibreur de charge vous permet d'obtenir un certificat géré par Google pour votre domaine lorsque le trafic est diffusé par l'équilibreur de charge. Cette méthode ne nécessite aucun enregistrement DNS supplémentaire pour le provisionnement des certificats.
Les équilibreurs de charge suivants sont compatibles avec les certificats gérés par Google avec autorisation d'équilibreur de charge :
- Équilibreur de charge d'application externe global
- Équilibreur de charge d'application classique
- Équilibreur de charge réseau proxy externe global
- Équilibreur de charge réseau proxy classique
Objectifs
Ce guide vous explique comment effectuer les tâches suivantes :
- Créez un certificat géré par Google émis par une autorité de certification (CA) publiquement approuvée avec une autorisation d'équilibreur de charge à l'aide de Certificate Manager.
- Déployez le certificat sur un équilibreur de charge compatible à l'aide d'un proxy HTTPS cible.
Si vous déployez un certificat sur un domaine de production, le trafic est brièvement interrompu pendant la configuration et l'activation du certificat sur votre équilibreur de charge.
Avant de commencer
- Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine, Certificate Manager APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine, Certificate Manager APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
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
Rôles requis
Assurez-vous de disposer des rôles suivants pour effectuer les tâches de ce tutoriel :
Propriétaire du gestionnaire de certificats (
roles/certificatemanager.owner)Obligatoire pour créer et gérer des ressources Certificate Manager.
Administrateur de l'équilibreur de charge Compute (
roles/compute.loadBalancerAdmin) ou Administrateur de réseaux Compute (roles/compute.networkAdmin)Obligatoire pour créer et gérer un proxy cible HTTPS.
Administrateur DNS (
roles/dns.admin)Obligatoire si vous souhaitez utiliser Cloud DNS comme solution DNS.
Pour en savoir plus, consultez les ressources suivantes :
- Rôles et autorisations pour Certificate Manager.
- Rôles et autorisations IAM de Compute Engine pour Compute Engine.
- Rôles et autorisations pour Cloud DNS.
Noms de domaine
Pour créer des certificats, obtenez les noms de domaine complets (FQDN) des domaines que vous possédez. Si vous n'avez pas de domaine, vous pouvez utiliser Cloud Domains pour enregistrer un domaine.
Créer l'équilibreur de charge
Ce tutoriel suppose que vous avez déjà créé et configuré les backends, les vérifications d'é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 encore créé d'équilibreur de charge, consultez les pages suivantes pour en créer un :
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.
Créer un certificat géré par Google avec une autorisation d'équilibreur de charge
Pour créer un certificat géré par Google avec une autorisation d'équilibreur de charge, 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 Public.
Dans le champ Noms de domaine, spécifiez une liste de noms de domaine du certificat, séparés par une virgule. Chaque nom de domaine doit être un nom de domaine complet, tel que
myorg.example.com.Pour Type d'autorisation, sélectionnez Autorisation de l'équilibreur de charge.
Dans le champ Étiquettes, spécifiez les étiquettes à associer au certificat. Pour ajouter une étiquette, cliquez sur Ajouter une étiquette, puis spécifiez une clé et une valeur pour votre étiquette.
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 une autorisation d'équilibreur de charge, utilisez la commande certificate-manager certificates create :
gcloud certificate-manager certificates create CERTIFICATE_NAME \
--domains="DOMAIN_NAMES"
Remplacez les éléments suivants :
CERTIFICATE_NAME: nom du certificat.DOMAIN_NAMES: liste des domaines cibles, séparés par une virgule. Chaque nom de domaine doit être un nom de domaine complet, tel quemyorg.example.com.
Terraform
Utiliser une ressource google_certificate_manager_certificate
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.
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"],
}
}
Remplacez les éléments suivants :
PROJECT_ID: ID de votre projet Google Cloud .CERTIFICATE_NAME: nom du certificat.DOMAIN_NAMES: liste des domaines cibles, séparés par une virgule. Chaque nom de domaine doit être un nom de domaine complet, tel quemyorg.example.com.
Déployer le certificat sur un équilibreur de charge
Pour déployer le certificat global géré par Google, utilisez un mappage de certificats.
Créer un mappage de certificat
Créez un mappage de certificats qui référence l'entrée de mappage de certificats associée à votre certificat :
gcloud
Pour créer un mappage 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 certificats 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 certificats
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 certificats, 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 de mappage de certificats.CERTIFICATE_MAP_NAME: nom du mappage de certificats auquel l'entrée de mappage de certificats est associée.CERTIFICATE_NAME: nom du certificat que vous souhaitez associer à l'entrée de mappage de certificats.HOSTNAME: nom d'hôte que vous souhaitez associer à l'entrée de mappage de certificats.Si vous souhaitez créer un certificat qui couvre à la fois un domaine générique et un domaine racine, spécifiez le nom d'hôte avec une racine et un caractère générique, par exemple
example.comet*.example.com. De plus, vous devez spécifier deux entrées de mappage de certificats : une pourexample.comet l'autre pour*.example.com.
Terraform
Pour créer une entrée de mappage de certificats 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 de mappage de certificats 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 certificats, 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 de mappage de certificats.CERTIFICATE_NAME: nom du certificat que vous souhaitez associer à l'entrée de mappage de certificats.
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 le mappage de certificats à un proxy cible nouveau ou existant.
Console
Si le proxy cible fait partie d'un équilibreur de charge existant, vous pouvez associer le mappage de certificats en modifiant la configuration de l'interface de l'équilibreur de charge.
Dans la console Google Cloud , accédez à la page Équilibrage de charge.
Cliquez sur le nom de l'équilibreur de charge que vous souhaitez mettre à jour, puis sur Modifier.
Cliquez sur Configuration de l'interface, puis sélectionnez la configuration de l'adresse IP et du port de l'interface que vous souhaitez modifier.
Si l'option Choisir un dépôt de certificats s'affiche, sélectionnez Utiliser un mappage de certificats.
Dans la liste Sélectionner un mappage de certificats, sélectionnez votre mappage de certificats.
Cliquez sur OK, puis sur Mettre à jour.
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 certificats 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 le mappage de certificats au proxy cible, vous pouvez utiliser une ressource google_compute_target_https_proxy.
Lors de la configuration d'un proxy cible, si vous associez des certificats TLS (SSL) directement et 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) directement associés.
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 la colonne État du certificat.
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:
authorizationAttemptInfo:
- domain: myorg.example.com
state: AUTHORIZED
domains:
- myorg.example.com
state: ACTIVE
name: projects/myProject/locations/global/certificates/myCert
pemCertificate: |
-----BEGIN CERTIFICATE-----
[...]
-----END CERTIFICATE-----
sanDnsnames:
- myorg.example.com
updateTime: '2021-10-20T12:19:55.083385630Z'
Si l'état du certificat n'est pas ACTIVE après plusieurs heures, vérifiez les points suivants :
- Le mappage de certificats référençant le certificat est associé au proxy cible approprié.
- Le proxy cible est associé à l'équilibreur de charge approprié.
- La configuration DNS du domaine cible pointe vers l'adresse IP de l'équilibreur de charge cible.
Pour en savoir plus sur le dépannage, consultez Résoudre les problèmes liés à Certificate Manager.
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.
Pour en savoir plus, consultez Nettoyer une configuration d'équilibrage de charge.
Supprimez ou dissociez le mappage de certificats du proxy.
Pour supprimer le mappage 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.
- Si des certificats TLS (SSL) sont associés directement au proxy, le fait de dissocier le mappage de certificats entraîne l'utilisation de ces certificats TLS (SSL) directement associés par le proxy.
- Si aucun certificat TLS (SSL) n'est associé directement au proxy, le mappage de certificats ne peut pas être dissocié du proxy. Vous devez d'abord associer au moins un certificat TLS (SSL) directement au proxy avant de pouvoir dissocier le mappage de certificats.
Pour dissocier le mappage de certificats, exécutez la commande suivante :
gcloud compute target-https-proxies update PROXY_NAME \ --clear-certificate-mapRemplacez
PROXY_NAMEpar le nom du proxy cible.Supprimez l'entrée de mappage de certificats 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 de mappage de certificats.CERTIFICATE_MAP_NAME: nom du mappage de certificats.
Supprimez le mappage de certificats :
gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
Remplacez
CERTIFICATE_MAP_NAMEpar le nom du mappage de certificats.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_NAMEpar le nom du certificat cible.