Gérer les entrées de mappage de certificats

Une entrée de mappage de certificat associe un certificat à un nom d'hôte cible et à un mappage de certificat cible. Cette page explique comment créer et gérer des entrées de mappage de certificats.

Pour en savoir plus, consultez la section Enregistrements de la carte de certificats.

Créer une entrée de mappage de certificat

Vous pouvez créer une entrée de mappage de certificat et y associer jusqu'à quatre certificats. Nous vous recommandons d'utiliser un algorithme de clé différent pour chaque certificat lorsque vous spécifiez plusieurs certificats pour un nom d'hôte. Par exemple, vous pouvez utiliser ECDSA pour un certificat et RSA pour un autre. Associer plusieurs certificats à une seule entrée de mappage de certificats est également utile lors de la migration de certificats autogérés vers des certificats gérés par Google.

Pour associer plusieurs certificats à une entrée de mappage de certificats, fournissez une liste de noms de certificats délimités par une virgule. Pour chaque sous-domaine, vous devez créer une entrée de mappage de certificats distincte.

Pour effectuer cette tâche, vous devez disposer de l'un des rôles IAM suivants sur le projet Google Cloud cible.

  • Rôle Éditeur du gestionnaire de certificats (roles/certificatemanager.editor)
  • Rôle Propriétaire du gestionnaire de certificats (roles/certificatemanager.owner)

Pour en savoir plus, consultez la section Rôles et autorisations.

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_NAMES" \
    --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_NAMES: liste des noms des certificats que vous souhaitez associer à cette entrée de mappage de certificat, séparés par une virgule.
  • HOSTNAME: nom d'hôte que vous souhaitez associer à l'entrée de mappage de certificats.

Créez l'entrée de mappage de certificat en envoyant une requête POST à la méthode certificateMaps.certificateMapEntries.create comme suit:

POST /v1/projects/PROJECT_ID/locations/global/certificateMaps/CERTIFICATE_MAP_NAME/certificateMapEntries?certificate_map_entry_id=CERTIFICATE_MAP_ENTRY_NAME"
{
 hostname: "HOSTNAME"
 certificates: ["projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME1","projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME2"]
}

Remplacez les éléments suivants :

  • PROJECT_ID: ID du projet Google Cloud.
  • CERTIFICATE_MAP_NAME: nom du mappage de certificat auquel l'entrée de mappage de certificat est associée.
  • CERTIFICATE_MAP_ENTRY_NAME: nom de l'entrée de la carte de certificat.
  • HOSTNAME: nom d'hôte que vous souhaitez associer à l'entrée de mappage de certificats.
  • CERTIFICATE_NAME1: nom du premier certificat que vous souhaitez associer à cette entrée de mappage de certificat.
  • CERTIFICATE_NAME2: nom du deuxième certificat que vous souhaitez associer à cette entrée de mappage de certificat.

Pour créer une entrée de mappage de certificats, vous pouvez utiliser une ressource google_certificate_manager_certificate_map_entry.

resource "google_certificate_manager_certificate_map_entry" "default" {
  name        = "${local.name}-first-entry-${random_id.tf_prefix.hex}"
  description = "example certificate map entry"
  map         = google_certificate_manager_certificate_map.default.name
  labels = {
    "terraform" : true
  }
  certificates = [google_certificate_manager_certificate.default.id]
  hostname     = local.domain
}

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.

Pour en savoir plus sur la façon dont l'équilibreur de charge sélectionne les certificats lors d'un handshake, consultez la section Logique de sélection des certificats.

Créer une entrée de mappage de certificat principale

Vous pouvez spécifier un certificat principal à diffuser par l'équilibreur de charge si le client ne fournit pas de nom d'hôte ou si l'équilibreur de charge ne peut pas faire correspondre le nom d'hôte à une entrée de mappage de certificat configurée.

Pour effectuer cette tâche, vous devez disposer de l'un des rôles IAM suivants sur le projet Google Cloud cible.

  • Rôle Éditeur du gestionnaire de certificats (roles/certificatemanager.editor)
  • Rôle Propriétaire du gestionnaire de certificats (roles/certificatemanager.owner)

Pour en savoir plus, consultez la section Rôles et autorisations.

Pour créer une entrée de mappage de certificat principal, exécutez la commande gcloud certificate-manager maps entries create avec l'option set-primary:

gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \
    --map="CERTIFICATE_MAP_NAME" \
    --certificates="CERTIFICATE_NAMES" \
    --set-primary

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_NAMES: liste des noms des certificats que vous souhaitez associer à cette entrée de mappage de certificat, séparés par une virgule.

Créez l'entrée de mappage de certificat en envoyant une requête POST à la méthode certificateMaps.certificateMapEntries.create comme suit:

POST /v1/projects/PROJECT_ID/locations/global/certificateMaps/CERTIFICATE_MAP_NAME/certificateMapEntries?certificate_map_entry_id=CERTIFICATE_MAP_ENTRY_NAME"
{
   matcher: "PRIMARY",
   certificates: ["projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME1","projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME2"]
}

Remplacez les éléments suivants :

  • PROJECT_ID: ID du projet Google Cloud.
  • CERTIFICATE_MAP_NAME: nom du mappage de certificat auquel l'entrée de mappage de certificat est associée.
  • CERTIFICATE_MAP_ENTRY_NAME: nom de l'entrée de la carte de certificat.
  • CERTIFICATE_NAME1: nom du premier certificat que vous souhaitez associer à l'entrée de mappage de certificats principale.
  • CERTIFICATE_NAME2: nom du deuxième certificat que vous souhaitez associer à l'entrée de mappage de certificat principale.

Pour en savoir plus sur la façon dont l'équilibreur de charge sélectionne les certificats lors d'un handshake, consultez la section Logique de sélection des certificats.

Mettre à jour une entrée de mappage de certificat

Lorsque vous mettez à jour une entrée de mappage de certificats, vous pouvez effectuer les opérations suivantes:

  • Attribuer ou retirer des certificats
  • Modifier la description
  • Modifier les libellés

Pour effectuer cette tâche, vous devez disposer de l'un des rôles IAM suivants sur le projet Google Cloud cible.

  • Rôle Éditeur du gestionnaire de certificats (roles/certificatemanager.editor)
  • Rôle Propriétaire du gestionnaire de certificats (roles/certificatemanager.owner)

Pour en savoir plus, consultez la section Rôles et autorisations.

Pour mettre à jour une entrée de mappage de certificats, utilisez la commande gcloud certificate-manager maps entries update:

gcloud certificate-manager maps entries update CERTIFICATE_MAP_ENTRY_NAME \
    --map="CERTIFICATE_MAP_NAME" \
    --certificates="CERTIFICATE_NAME,CERTIFICATE_NAME" \
    --description="DESCRIPTION" \
    --update-labels="LABELS"

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.
  • DESCRIPTION: description pertinente pour cette entrée de mappage de certificats.
  • LABELS: liste des libellés appliqués à cette entrée de mappage de certificats.

Mettez à jour l'entrée de mappage de certificats en envoyant une requête PATCH à la méthode certificateMaps.certificateMapEntries.patch comme suit:

PATCH  /v1/projects/example-project/locations/global/certificateMaps/CERTIFICATE_MAP_NAME/certificateMapEntries/CERTIFICATE_MAP_ENTRY_NAME?updateMask=labels,description,certificates
{
  "certificates": ["projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME"],
  "description": "DESCRIPTION",
  "labels": { "LABEL_KEY": "LABEL_VALUE" }
}

Remplacez les éléments suivants :

  • CERTIFICATE_MAP_NAME: nom du mappage de certificat auquel l'entrée de mappage de certificat est associée.
  • CERTIFICATE_MAP_ENTRY_NAME: nom de l'entrée de la carte de certificat.
  • PROJECT_ID: ID du projet Google Cloud.
  • CERTIFICATE_NAME: nom du certificat.
  • DESCRIPTION: description pertinente pour cette entrée de mappage de certificats.
  • LABEL_KEY: clé de libellé appliquée à cette entrée de mappage de certificats.
  • LABEL_VALUE: valeur d'étiquette appliquée à cette entrée de mappage de certificat.

Lister les entrées de mappage de certificats

Vous pouvez lister, filtrer et trier toutes les entrées de mappage de certificats configurées du projet.

Pour effectuer cette tâche, vous devez disposer de l'un des rôles IAM suivants sur le projet Google Cloud cible.

  • Rôle "Lecteur du gestionnaire de certificats" (roles/certificatemanager.viewer)
  • Rôle Éditeur du gestionnaire de certificats (roles/certificatemanager.editor)
  • Rôle Propriétaire du gestionnaire de certificats (roles/certificatemanager.owner)

Pour en savoir plus, consultez la section Rôles et autorisations.

gcloud certificate-manager maps entries list --map=CERTIFICATE_MAP_NAME \
    --filter="FILTER" \
    --page-size="PAGE_SIZE" \
    --limit="LIMIT" \
    --sort-by="SORT_BY"

Remplacez les éléments suivants :

  • CERTIFICATE_MAP_NAME: nom du mappage de certificat auquel l'entrée de mappage de certificat est associée.
  • FILTER: expression qui limite les résultats renvoyés à des valeurs spécifiques.

    Par exemple, vous pouvez filtrer les résultats en fonction des critères suivants:

    • État de la diffusion: --filter='state=ACTIVE'
    • Matcher (défini comme principal): --filter='-matcher=PRIMARY'
    • Nom d'hôte : --filter='hostname=example.com'
    • Certificats attribués: --filter='certificates:my-cert'
    • Libellés et heure de création: --filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'

    Pour plus d'exemples de filtrage que vous pouvez utiliser avec le Gestionnaire de certificats, consultez la section Trier et filtrer les résultats de la liste dans la documentation de Cloud Key Management Service.

  • PAGE_SIZE: nombre de résultats à renvoyer par page.

  • LIMIT: nombre maximal de résultats à renvoyer.

  • SORT_BY: liste de champs name séparés par une virgule par lesquels les résultats renvoyés sont triés. L'ordre de tri par défaut est croissant. Pour un ordre de tri décroissant, ajoutez un tilde (~) au champ.

Répertoriez les entrées de mappage de certificats configurées dans un mappage de certificats donné en envoyant une requête LIST à la méthode certificateMaps.certificateMapEntries.list comme suit:

GET /v1/projects/PROJECT_ID/locations/global/certificateMaps/CERTIFICATE_MAP_NAME/certificateMapEntries?filter=FILTER&pageSize=PAGE_SIZE&sortBy=SORT_BY

Remplacez les éléments suivants :

  • PROJECT_ID: ID du projet Google Cloud.
  • CERTIFICATE_MAP_NAME: nom du mappage de certificats cible.
  • FILTER: expression qui limite les résultats renvoyés à des valeurs spécifiques.

    Par exemple, vous pouvez filtrer les résultats en fonction des critères suivants:

    • État de la diffusion: --filter='state=ACTIVE'
    • Matcher (défini comme principal): --filter='-matcher=PRIMARY'
    • Nom d'hôte : --filter='hostname=example.com'
    • Certificats attribués: --filter='certificates:my-cert'
    • Libellés et heure de création: --filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'

    Pour plus d'exemples de filtrage que vous pouvez utiliser avec le Gestionnaire de certificats, consultez la section Trier et filtrer les résultats de la liste dans la documentation de Cloud Key Management Service.

  • PAGE_SIZE: nombre de résultats à renvoyer par page.

  • SORT_BY: liste de champs name séparés par une virgule par lesquels les résultats renvoyés sont triés. L'ordre de tri par défaut est croissant. Pour un ordre de tri décroissant, ajoutez un tilde (~) au champ.

Afficher l'état d'une entrée de mappage de certificat

Vous pouvez afficher l'état d'une entrée de la carte de certificats.

Pour effectuer cette tâche, vous devez disposer de l'un des rôles IAM suivants sur le projet Google Cloud cible.

  • Rôle "Lecteur du gestionnaire de certificats" (roles/certificatemanager.viewer)
  • Rôle Éditeur du gestionnaire de certificats (roles/certificatemanager.editor)
  • Rôle Propriétaire du gestionnaire de certificats (roles/certificatemanager.owner)

Pour en savoir plus, consultez la section Rôles et autorisations.

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_MAP_NAME: nom du mappage de certificat auquel l'entrée de mappage de certificat est associée.

Affichez l'état de l'entrée de mappage de certificat en envoyant une requête GET à la méthode certificateMaps.certificateMapEntries.get comme suit:

GET /v1/projects/PROJECT_ID/locations/global/certificateMaps/CERTIFICATE_MAP_NAME/certificateMapEntries/CERTIFICATE_MAP_ENTRY_NAME

Remplacez les éléments suivants :

  • PROJECT_ID: ID du projet Google Cloud.
  • CERTIFICATE_MAP_NAME: nom du mappage de certificat auquel l'entrée de mappage de certificat est associée.
  • CERTIFICATE_MAP_ENTRY_NAME: nom de l'entrée de la carte de certificat.

Supprimer une entrée de mappage de certificat

Supprimer une entrée de mappage de certificat dissocie les certificats associés à l'entrée de mappage de certificat du proxy cible. La suppression d'une entrée de mappage de certificat ne supprime pas les certificats associés de Google Cloud. Vous devez supprimer manuellement ces certificats.

Pour effectuer cette tâche, vous devez disposer de l'un des rôles IAM suivants sur le projet Google Cloud cible.

  • Rôle Éditeur du gestionnaire de certificats (roles/certificatemanager.editor)

Pour en savoir plus, consultez la section Rôles et autorisations.

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 certificat auquel l'entrée de mappage de certificat est associée.

Supprimez une entrée de mappage de certificat en envoyant une requête DELETE à la méthode certificateMaps.certificateMapEntries.delete comme suit:

DELETE /v1/projects/PROJECT_ID/locations/global/certificateMaps/CERTIFICATE_MAP_NAME/certificateMapEntries/CERTIFICATE_MAP_ENTRY_NAME

Remplacez les éléments suivants :

  • PROJECT_ID: ID du projet Google Cloud.
  • CERTIFICATE_MAP_NAME: nom du mappage de certificat auquel l'entrée de mappage de certificat est associée.
  • CERTIFICATE_MAP_ENTRY_NAME: nom de l'entrée de la carte de certificat.

Étape suivante