Ce tutoriel vous explique comment utiliser le Gestionnaire de certificats pour déployer un certificat global autogéré.
Les équilibreurs de charge suivants sont compatibles avec les certificats autogérés globaux:
- É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
Si vous souhaitez déployer sur des équilibreurs de charge régionaux ou interrégionaux, consultez les ressources suivantes:
Objectifs
Ce guide vous explique comment effectuer les tâches suivantes :
- Importez un certificat autogéré dans le 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 APIs.
- Install the Google Cloud CLI.
-
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 APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Rôles requis
Pour effectuer les tâches de ce tutoriel, assurez-vous de disposer des rôles suivants:
Propriétaire du gestionnaire de certificats (
roles/certificatemanager.owner
)Nécessaire pour créer et gérer des ressources du Gestionnaire de certificats.
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.
Pour en savoir plus, consultez les ressources suivantes :
- Rôles et autorisations pour le Gestionnaire de certificats
- Rôles et autorisations IAM de Compute Engine pour Compute Engine.
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 backend de groupe d'instances géré.
Pour créer un équilibreur de charge réseau proxy externe global (proxy SSL), consultez la page 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 une clé privée et un certificat
Pour créer une clé privée et un certificat, procédez comme suit:
Utilisez une autorité de certification (CA) tierce de confiance pour émettre le certificat avec la clé associée.
Vérifiez que le certificat est correctement enchaîné et approuvé par la racine.
Préparez les fichiers encodés en PEM suivants:
- Fichier de certificat (CRT)
- Le fichier de clé privée (KEY) correspondant
Pour savoir comment demander et valider un certificat, consultez la section Créer une clé privée et un certificat.
Importer un certificat autogéré dans le gestionnaire de certificats
Pour importer le certificat dans le gestionnaire de certificats, procédez comme suit:
Console
Dans la console Google Cloud, accédez à la page Gestionnaire de certificats.
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 Type de certificat, sélectionnez Créer un certificat autogéré.
Pour le champ Certificat, effectuez l'une des opérations suivantes:
- Cliquez sur le bouton Importer et sélectionnez votre fichier de certificat au format PEM.
- Copiez et collez le contenu d'un certificat au format PEM. Le contenu doit commencer par
-----BEGIN CERTIFICATE-----
et se terminer par-----END CERTIFICATE-----
.
Pour le champ Certificat de clé privée, effectuez l'une des opérations suivantes:
- Cliquez sur le bouton Importer et sélectionnez votre clé privée. Votre clé privée doit être au format PEM et non protégée par une phrase secrète.
- Copiez et collez le contenu d'une clé privée au format PEM. Les clés privées doivent commencer par
-----BEGIN PRIVATE KEY-----
et se terminer par-----END PRIVATE KEY-----
.
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 autogéré global, utilisez la commande certificate-manager certificates create
:
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --certificate-file="CERTIFICATE_FILE" \ --private-key-file="PRIVATE_KEY_FILE"
Remplacez les éléments suivants :
CERTIFICATE_NAME
: nom du certificat.CERTIFICATE_FILE
: chemin d'accès et nom du fichier de certificat CRT.PRIVATE_KEY_FILE
: chemin d'accès et nom du fichier de clé privée KEY.
Terraform
Pour importer un certificat autogéré, vous pouvez utiliser une ressource google_certificate_manager_certificate
avec le bloc self_managed
.
API
Importez 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 { self_managed: { pem_certificate: "PEM_CERTIFICATE", pem_private_key: "PEM_KEY", } }
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet Google Cloud.CERTIFICATE_NAME
: nom du certificat.PEM_CERTIFICATE
: certificat PEM.PEM_KEY
: clé PEM.
Déployer le certificat autogéré sur un équilibreur de charge
Pour déployer le certificat autogéré global, utilisez un mappage de certificats.
Créer un mappage de certificat
Créez un mappage de certificat qui fait référence à l'entrée de mappage de certificat associée à votre certificat:
gcloud
Pour créer une mise en correspondance de certificats, exécutez 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 certificats, exécutez 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 la carte de certificat.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 certificats.HOSTNAME
: nom d'hôte que vous souhaitez associer à l'entrée de mappage de certificats.Si vous créez des certificats avec un domaine générique, spécifiez également le nom d'hôte avec un caractère générique, tel que
*.example.com
.
Terraform
Pour créer une entrée de mappage de certificats, vous pouvez utiliser une ressource google_certificate_manager_certificate_map_entry
.
Vérifier que l'entrée de 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 de la carte de certificat.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 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 certificat 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 certificat au proxy cible, vous pouvez utiliser une ressource google_compute_target_https_proxy
.
Lorsque vous configurez un proxy cible, si vous joignez 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) joints directement.
Effectuer un nettoyage
Pour éviter que les ressources utilisées dans ce tutoriel 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 le mappage de certificats du proxy.
Pour supprimer la mise en correspondance des 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 détacher 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 associé directement 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 certificat.
Pour dissocier la carte de certificat, 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 certificat:
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 la carte de certificat.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 importé:
gcloud certificate-manager certificates delete CERTIFICATE_NAME
Remplacez
CERTIFICATE_NAME
par le nom du certificat.