Déployez un certificat global géré par Google avec une autorisation d'équilibrage de charge


Ce tutoriel vous présente le processus de déploiement de certificats à l'aide d'un certificat géré par Google avec un équilibreur de charge autorisation.

Vous trouverez un comparatif des types d'autorisation de domaine pris en charge dans la section Domaines autorisation.

Les équilibreurs de charge suivants acceptent les certificats gérés par Google avec autorisation de l'équilibreur de charge:

  • Équilibreur de charge d'application externe mondial
  • Équilibreur de charge d'application classique
  • Équilibreur de charge réseau proxy externe global

Si vous souhaitez migrer un certificat existant vers le gestionnaire de certificats, suivez la procédure décrite dans Migrer des certificats vers Gestionnaire de certificats.

Objectifs

Ce guide vous explique comment effectuer les tâches suivantes :

  • Créez un certificat géré par Google, délivré par une autorité de certification de confiance publique avec l'autorisation de l'équilibreur de charge à l'aide du gestionnaire de certificats.
  • Déployer le certificat sur un équilibreur de charge compatible en utilisant un protocole HTTPS cible proxy.

Pour plus d'informations sur le processus de déploiement des certificats, consultez la section Déploiement présentation.

Si vous suivez les étapes de ce tutoriel pour déployer un certificat pour une qui diffuse déjà du trafic de production, gardez à l'esprit que le trafic ce domaine sera interrompu pendant le provisionnement du certificat activé sur l'équilibreur de charge correspondant.

Avant de commencer

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Assurez-vous de disposer des rôles suivants pour effectuer les tâches de ce tutoriel:

    • Certificate Manager Owner (Propriétaire du gestionnaire de certificats) : obligatoire pour créer et gérer les ressources du gestionnaire de certificats.
    • Administrateur de l'équilibreur de charge Compute ou Administrateur de réseaux Compute: obligatoire pour créer et gérer un proxy HTTPS cible.
    • Administrateur DNS: obligatoire si vous souhaitez utiliser Cloud DNS comme solution DNS.

    Pour en savoir plus, consultez les ressources suivantes :

Créer un certificat géré par Google avec une autorisation pour l'équilibreur de charge

Pour créer un certificat géré par Google avec une autorisation d'équilibreur de charge, suivez la procédure décrite dans cette section.

Pour spécifier plusieurs noms de domaine pour le certificat, indiquez un fichier liste des noms de domaines cibles du certificat.

Pour en savoir plus, consultez la section Autorisations et rôles.

Console

  1. Dans la console Google Cloud, accédez à la page Gestionnaire de certificats.

    Accéder au gestionnaire de certificats

  2. Sur la page qui s'affiche, sélectionnez l'onglet Certificats.

  3. Cliquez sur Ajouter un certificat.

  4. Saisissez un nom pour le certificat.

    Ce nom doit être unique au projet.

  5. Facultatif: saisissez la description du certificat. La description vous aide à identifier un certificat spécifique par la suite.

  6. Dans le champ Emplacement, sélectionnez Mondial.

  7. Pour Champ d'application, sélectionnez Par défaut.

  8. Pour Type de certificat, sélectionnez Créer un certificat géré par Google.

  9. Dans le champ Type d'autorité de certification, sélectionnez Public.

  10. Indiquez les noms de domaine du certificat. Saisissez des valeurs séparées par une virgule liste des domaines cibles. De plus, chaque nom de domaine doit être nom de domaine, tel que myorg.example.com.

  11. Dans le champ Type d'autorisation, sélectionnez Autorisation de l'équilibreur de charge.

  12. Spécifiez une étiquette à associer au certificat. Vous pouvez ajouter plusieurs étiquettes, si nécessaire. Pour ajouter un libellé, cliquez sur l'icône le bouton Ajouter un libellé, puis spécifiez les paramètres key et value pour votre libellé.

  13. Cliquez sur Créer. Vérifiez que le nouveau certificat apparaît dans la liste des certificats.

gcloud

gcloud certificate-manager certificates create CERTIFICATE_NAME \
--domains="DOMAIN_NAMES"

Remplacez les éléments suivants :

  • CERTIFICATE_NAME: nom unique du certificat.
  • DOMAIN_NAMES: liste des cibles, séparées par une virgule domaines pour ce certificat. Chaque nom de domaine doit être un nom complet nom de domaine, tel que myorg.example.com.

Terraform

Utilisez un google_certificate_manager_certificate ressource.

resource "google_certificate_manager_certificate" "default" {
  name        = "${local.name}-rootcert-${random_id.tf_prefix.hex}"
  description = "Cert with LB authorization"
  managed {
    domains = [local.domain]
  }
  labels = {
    "terraform" : true
  }
}

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

API

Créez le certificat en envoyant une requête POST au 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 du projet Google Cloud cible.
  • CERTIFICATE_NAME: nom unique qui décrit cela certificat.
  • DOMAIN_NAME: domaine cible du certificat. Le nom de domaine doit être un nom de domaine complet, tel que myorg.example.com

Pour une présentation du processus de déploiement des certificats, consultez la section Déploiement présentation.

Déployer le certificat sur un équilibreur de charge

Suivez les étapes de cette section pour déployer le certificat géré par Google que vous créés aux étapes précédentes vers un équilibreur de charge.

Créer un mappage de certificat

Créez un mappage de certificats qui référence au mappage de certificats l'entrée associée à votre certificat.

gcloud

gcloud certificate-manager maps create CERTIFICATE_MAP_NAME

Remplacez CERTIFICATE_MAP_NAME par le nom de la cible. le mappage de certificats.

Terraform

Utilisez un google_certificate_manager_certificate_map ressource.

resource "google_certificate_manager_certificate_map" "default" {
  name        = "${local.name}-certmap1-${random_id.tf_prefix.hex}"
  description = "${local.domain} certificate map"
  labels = {
    "terraform" : true
  }
}

Créer une entrée de mappage de certificats

Créer une entrée de mappage de certificats et l'associer à votre certificate en tant que ainsi que votre mappage de certificats.

gcloud

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 unique du entrée de mappage de certificat
  • CERTIFICATE_MAP_NAME: nom du mappage de certificats auquel cette entrée de mappage de certificat s'associe
  • CERTIFICATE_NAME: nom du certificat que vous souhaitez associer à cette entrée de mappage de certificats
  • HOSTNAME: nom d'hôte que vous souhaitez associer avec cette entrée de mappage de certificat

Terraform

Utilisez un google_certificate_manager_certificate_map_entry ressource.

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
}

Vérifier que l'entrée de mappage de certificat est active

Exécutez la commande suivante pour vérifier que l'entrée de mappage de certificat est active avant d'associer le mappage de certificat correspondant au proxy cible 

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 la cible entrée de mappage de certificat
  • CERTIFICATE_MAP_NAME: nom du mappage de certificat sur que cette entrée de mappage de certificat associe

La commande renvoie un résultat semblable à celui-ci :

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 certificat au proxy cible

Associez le mappage de certificat configuré au proxy cible.

Console

  1. Dans la console Google Cloud, accédez à la page Proxys cibles.

Accéder à la cible proxys

  1. Notez le nom du proxy cible.

  2. Associez le mappage de certificat au proxy cible:

   gcloud compute target-https-proxies update PROXY_NAME \
       --certificate-map="CERTIFICATE_MAP_NAME"
   

Remplacez les éléments suivants :

*   `PROXY_NAME`: the name of the target proxy
*   `CERTIFICATE_MAP_NAME`: the name of the certificate
    map referencing your certificate map entry and its associated
    certificate

Terraform

Utilisez un google_compute_target_https_proxy ressource.

resource "google_compute_target_https_proxy" "default" {
  name            = "test-proxy"
  certificate_map = "//certificatemanager.googleapis.com/${google_certificate_manager_certificate_map.default.id}"
  url_map         = google_compute_url_map.default.id
}

S’il existe des certificats TLS (SSL) existants directement au proxy, le proxy donne la préférence aux certificats référencés par le mappage de certificats ; les certificats TLS (SSL) directement associés.

Attendez que le certificat soit activé

Une fois le certificat associé au proxy cible, plusieurs heures pour que le certificat soit émis et que son état passe à ACTIVE Une fois que l'état est ACTIVE, le chargement peut prendre jusqu'à 30 minutes. de l'équilibreur de charge pour commencer à l'utiliser.

Utilisez la commande suivante pour vérifier l'état du certificat:

gcloud certificate-manager certificates describe CERTIFICATE_NAME

Remplacez CERTIFICATE_NAME par le nom de la cible. Certificat géré par Google.

La commande renvoie un résultat semblable à celui-ci :

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
sanDnsnames:
  -   myorg.example.com
updateTime: '2021-10-20T12:19:55.083385630Z'

Si l'état du certificat n'est pas passé à ACTIVE après plusieurs heures, vérifiez les éléments suivants:

Pour obtenir d'autres procédures de dépannage, consultez la page Dépannage SSL. certificats.

Effectuer un nettoyage

Pour annuler les modifications que vous avez apportées dans ce tutoriel, procédez comme suit : étapes:

  1. Dissociez le mappage de certificat du proxy.

    Avant de dissocier le mappage de certificats, tenez compte des points suivants:

    • S’il y avait des certificats TLS (SSL) connectés directement au proxy, la dissociation du mappage de certificat oblige le proxy à reprendre l'utilisation de ces les certificats TLS (SSL) directement rattachés.
    • Si aucun certificat TLS (SSL) n'était directement associé au proxy, le mappage de certificat ne peut être dissocié du proxy. Vous devez d'abord joindre au moins un certificat TLS (SSL) directement au proxy pour que vous puissiez 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-map
    
  2. Supprimez l'entrée du 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 la cible entrée de mappage de certificat
    • CERTIFICATE_MAP_NAME: nom de la cible mappage de certificat
  3. Supprimez le mappage de certificat:

    gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
    

    Remplacez CERTIFICATE_MAP_NAME par le nom de la cible. le mappage de certificats.

  4. Supprimez le certificat géré par Google:

    gcloud certificate-manager certificates delete CERTIFICATE_NAME
    

    Remplacez CERTIFICATE_NAME par le nom de la cible. certificat.

Étape suivante