Ce tutoriel vous explique comment déployer un certificat à l'aide d'un certificat géré par Google avec une autorisation DNS.
Les équilibreurs de charge suivants acceptent les certificats gérés par Google avec DNS autorisation:
- Équilibreur de charge d'application externe mondial
- Équilibreur de charge d'application classique
- Équilibreur de charge d'application interne interrégional
- Équilibreur de charge réseau proxy externe global
Pour comparer les types d'autorisation de domaine compatibles, consultez la section Autorisations de domaine.
Si vous souhaitez migrer un certificat existant vers le Gestionnaire de certificats, suivez plutôt la procédure décrite dans Migrer des certificats vers le Gestionnaire de certificats.
Objectifs
Ce guide vous explique comment effectuer les tâches suivantes :
- Créer un certificat géré par Google, émis par un organisme public de confiance autorité de certification avec autorisation DNS à 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.
Avant de commencer
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
La version
465.0.0
ou ultérieure de la gcloud CLI est nécessaire pour déployer le certificat. Pour vérifier la version de gcloud CLI, exécutez la commande suivante :gcloud --version
Pour mettre à jour la gcloud CLI, exécutez la commande suivante.
gcloud components update
Assurez-vous de disposer des rôles suivants pour effectuer les tâches de ce tutoriel :
- Propriétaire du gestionnaire de certificats : rôle requis 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 :
- Rôles et autorisations pour Gestionnaire de certificats
- Rôles et autorisations IAM de Compute Engine pour Compute Engine
- Contrôle des accès avec IAM pour Cloud DNS
Créer un certificat géré par Google avec une autorisation DNS
Suivez les étapes de cette section pour créer une autorisation DNS et un certificat géré par Google qui la référence.
Créer une autorisation DNS
Créez l'autorisation DNS comme décrit dans cette section. Si vous créez une autorisation DNS pour un certificat générique, tel que *.myorg.example.com
, configurez l'autorisation DNS pour le domaine parent (par exemple, myorg.example.com
).
gcloud
gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \ --domain="DOMAIN_NAME" \ gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME
Le type d'autorisation DNS par défaut pour un certificat global géré par Google est FIXED_RECORD
. Pour utiliser l'autorisation DNS par projet, exécutez la commande suivante :
gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \ --domain="DOMAIN_NAME" \ --type="PER_PROJECT_RECORD" \ gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME
Remplacez les éléments suivants :
AUTHORIZATION_NAME
: nom de l'autorisation DNS.DOMAIN_NAME
: le nom du domaine pour lequel vous la création de cette autorisation DNS. Le nom de domaine doit être un nom complet nom de domaine, tel quemyorg.example.com
.
La commande renvoie un résultat semblable au suivant : Utiliser l'enregistrement CNAME de la sortie vers ajouter à votre configuration DNS.
createTime: '2022-01-14T13:35:00.258409106Z' dnsResourceRecord: data: 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. name: _acme-challenge.myorg.example.com. type: CNAME domain: myorg.example.com name: projects/myProject/locations/global/dnsAuthorizations/myAuthorization updateTime: '2022-01-14T13:35:01.571086137Z'
Terraform
Pour créer une autorisation DNS, vous pouvez utiliser une ressource google_certificate_manager_dns_authorization
.
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.
Ajouter l'enregistrement CNAME à votre configuration DNS
Si vous utilisez Google Cloud pour gérer votre DNS, suivez les étapes de cette section. Sinon, consultez la documentation de votre solution DNS tierce.
Avant de suivre la procédure décrite dans cette section, assurez-vous d'avoir créé un zone DNS publique.
Lorsque vous créez une autorisation DNS, la commande gcloud CLI renvoie l'enregistrement CNAME correspondant. Vous devez ajouter cet enregistrement CNAME à votre configuration DNS dans la zone DNS du domaine cible comme suit :
gcloud
Lancez la transaction d'enregistrement DNS :
gcloud dns record-sets transaction start --zone="DNS_ZONE_NAME"
Remplacez
DNS_ZONE_NAME
par le nom du DNS cible. dans la zone.Ajoutez l'enregistrement CNAME à la zone DNS cible :
gcloud dns record-sets transaction add CNAME_RECORD \ --name="_acme-challenge.DOMAIN_NAME." \ --ttl="30" \ --type="CNAME" \ --zone="DNS_ZONE_NAME"
Remplacez les éléments suivants :
CNAME_RECORD
: valeur de données complète de l'enregistrement CNAME renvoyé par la commande Google Cloud CLI qui a créé l'autorisation DNS correspondante.DOMAIN_NAME
: nom du domaine cible. Le nom de domaine doit être un nom de domaine complet, tel quemyorg.example.com
. Vous devez également inclure le point final après la balise le nom du domaine cible.DNS_ZONE_NAME
: nom de la zone DNS cible.
Consultez l'exemple ci-dessous :
gcloud dns record-sets transaction add 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. \ --name="_acme-challenge.myorg.example.com." \ --ttl="30" \ --type="CNAME" \ --zone="myorg-example-com"
Exécutez la transaction d'enregistrement DNS pour enregistrer vos modifications :
gcloud dns record-sets transaction execute --zone="DNS_ZONE_NAME"
Remplacez
DNS_ZONE_NAME
par le nom du DNS cible. dans la zone.
Terraform
Pour ajouter l'enregistrement CNAME à votre configuration DNS, vous pouvez utiliser une ressource google_dns_record_set
.
Créer un certificat géré par Google faisant référence à l'autorisation DNS
Pour créer un certificat géré par Google qui référence l'autorisation DNS que vous avez créée lors des étapes précédentes, procédez comme suit :
Console
Dans la console Google Cloud, accédez à la page Gestionnaire de certificats.
Sur la page qui s'affiche, sélectionnez l'onglet Certificats.
Cliquez sur Ajouter un certificat.
Saisissez un nom pour le certificat.
Ce nom doit être unique au projet.
Facultatif: saisissez la description du certificat. La description vous aide à identifier un certificat spécifique par la suite.
Pour location (Emplacement), sélectionnez Global (Mondial).
Pour Portée, choisissez l'une des options suivantes:
- Par défaut: choisissez la valeur par défaut pour un équilibreur de charge d'application externe global, un équilibreur de charge d'application classique ou un équilibreur de charge réseau proxy externe global.
- All-regions (Toutes les régions) : choisissez toutes les régions pour un équilibreur de charge d'application interne interrégional.
Pour Type de certificat, sélectionnez Créer un certificat géré par Google.
Pour Type d'autorité de certification, sélectionnez Public.
Spécifiez les noms de domaine du certificat. Saisissez une liste des domaines cibles séparés par une virgule. De plus, chaque nom de domaine doit être un nom de domaine complet, tel que
myorg.example.com
.Dans Type d'autorisation, sélectionnez Autorisation DNS. Si le nom de domaine est associé à une autorisation DNS, il sera automatiquement détecté. Si aucune autorisation DNS n'est associée au nom de domaine, procédez comme suit :
- Cliquez sur Créer une autorisation DNS manquante pour afficher la boîte de dialogue "Créer une autorisation DNS".
- Dans le champ Nom de l'autorisation DNS, spécifiez le nom de l'autorisation DNS.
- Cliquez sur Créer une autorisation DNS. Vérifiez que le nom DNS est associé au nom de domaine.
Spécifiez un libellé à associer au certificat. Vous pouvez ajouter plusieurs étiquettes, si nécessaire. Pour ajouter un libellé, cliquez sur l'icône add_box le bouton Ajouter un libellé, et spécifiez les paramètres
key
etvalue
pour votre libellé.Cliquez sur Créer. Vérifiez que le nouveau certificat apparaît dans la liste des certificats.
gcloud
Pour un équilibreur de charge d'application externe global, un équilibreur de charge d'application classique ou Équilibreur de charge réseau proxy externe global
Exécutez la commande suivante :
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains=DOMAIN_NAME \ --dns-authorizations=AUTHORIZATION_NAME
Remplacez les éléments suivants :
CERTIFICATE_NAME
: nom unique du certificat.DOMAIN_NAME
: domaine cible du certificat Le nom de domaine doit être un nom de domaine complet, tel quemyorg.example.com
.AUTHORIZATION_NAME
: nom de l'autorisation DNS que vous avez créée pour ce certificat.
Pour créer un certificat géré par Google avec un nom de domaine générique, utilisez la classe la commande suivante. Un certificat de nom de domaine générique couvre tous les sous-domaines de premier niveau d'un domaine donné.
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="*.DOMAIN_NAME,DOMAIN_NAME" \ --dns-authorizations=AUTHORIZATION_NAME
Remplacez les éléments suivants :
CERTIFICATE_NAME
: nom unique du certificat.DOMAIN_NAME
: domaine cible du certificat Le préfixe astérisque-point (*.
) indique un certificat générique. Le domaine le nom doit être un nom de domaine complet, tel quemyorg.example.com
.AUTHORIZATION_NAME
: nom de l'autorisation DNS que vous avez créé pour ce certificat.
Pour un équilibreur de charge d'application interne interrégional
Exécutez la commande suivante :
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains=DOMAIN_NAME \ --dns-authorizations=AUTHORIZATION_NAME \ --scope=all-regions
Remplacez les éléments suivants :
CERTIFICATE_NAME
: nom unique du certificat.DOMAIN_NAME
: domaine cible du certificat Le nom de domaine doit être un nom de domaine complet, tel quemyorg.example.com
.AUTHORIZATION_NAME
: nom de l'autorisation DNS que vous avez créée pour ce certificat.
Pour créer un certificat géré par Google avec un nom de domaine générique, utilisez la classe la commande suivante. Un certificat de nom de domaine générique couvre tous les sous-domaines de premier niveau d'un domaine donné.
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="*.DOMAIN_NAME,DOMAIN_NAME" \ --dns-authorizations=AUTHORIZATION_NAME \ --scope=all-regions
Remplacez les éléments suivants :
CERTIFICATE_NAME
: nom unique du certificat.DOMAIN_NAME
: domaine cible du certificat. La Le préfixe à point astérisque (*.
) indique un certificat générique. Le nom de domaine doit être un nom de domaine complet, tel quemyorg.example.com
.AUTHORIZATION_NAME
: nom de l'autorisation DNS que vous avez créé pour ce certificat.
Terraform
Utilisez une ressource google_certificate_manager_certificate
.
Vérifier que le certificat est actif
Utilisez la commande suivante pour vérifier que le certificat lui-même est actif avant de le déployer sur votre équilibreur de charge. Un délai de plusieurs heures peut être nécessaire
l'état du certificat à ACTIVE
.
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 :
expireTime: '2022-05-07T05:03:49Z' managed: authorizationAttemptInfo: - domain: myorg.example.com state: AUTHORIZED dnsAuthorizations: - projects/my-project/locations/global/dnsAuthorizations/myAuth 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'
Déployer le certificat sur un équilibreur de charge
Cette section vous explique comment déployer le certificat géré par Google sur un équilibreur de charge.
Avant de poursuivre avec les tâches de cette section, assurez-vous d'avoir effectué les tâches énumérées dans la section Créer un certificat géré par Google avec une autorisation DNS.
Selon le type d'équilibreur de charge, vous pouvez déployer les certificats comme suit:
- Pour les équilibreurs de charge suivants, déployez le certificat à l'aide d'un
mappage de certificats:
- Équilibreur de charge d'application externe mondial
- Équilibreur de charge réseau proxy externe global
- Équilibreur de charge d'application classique
- Pour l'équilibreur de charge d'application interne interrégional, déployez le certificat en l'associant directement au proxy cible.
Déployer le certificat à l'aide d'un mappage de certificat
Cette section décrit les étapes à suivre pour déployer un certificat à l'aide d'un certificat sur la carte.
Créer un mappage de certificat
Créer un mappage de certificats qui fait référence à l'entrée de mappage de certificats associé à 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
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é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 certificatCERTIFICATE_MAP_NAME
: nom du mappage de certificat auquel cette entrée de mappage de certificats est associéeCERTIFICATE_NAME
: nom du certificat souhaité à associer à cette entrée de mappage de certificatsHOSTNAME
: nom d'hôte que vous souhaitez associer avec cette entrée de mappage de certificat.Si vous créez des certificats avec un domaine générique, spécifiez le nom d'hôte avec un caractère générique, comme
*.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
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 certificatCERTIFICATE_MAP_NAME
: nom du mappage de certificat auquel cette entrée de mappage de certificats est associée
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:
gcloud
Dans la console Google Cloud, accédez à la page Proxys cibles.
Notez le nom du proxy cible.
Associez le mappage de certificats au proxy cible :
gcloud compute target-https-proxies update PROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME" \ --global
Remplacez les éléments suivants :
PROXY_NAME
: nom du proxy cible.CERTIFICATE_MAP_NAME
: nom du certificat qui fait référence à votre entrée de mappage de certificats et aux certificat.
Terraform
Pour associer le mappage de certificat au proxy cible, vous pouvez utiliser un
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.
Associer le certificat directement au proxy cible
Pour associer le certificat directement au proxy, exécutez la commande suivante:
gcloud compute target-https-proxies update PROXY_NAME \ --url-map=URL_MAP \ --global \ --certificate-manager-certificates=CERTIFICATE_NAME
Remplacez les éléments suivants :
PROXY_NAME
: nom unique du proxy.URL_MAP
: nom du mappage d'URL. Vous avez créé le mappage d'URL. lors de la création de l'équilibreur de charge.CERTIFICATE_NAME
: nom du certificat.
Effectuer un nettoyage
Pour annuler les modifications que vous avez apportées dans ce tutoriel, procédez comme suit : étapes:
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 associer au moins un certificat TLS (SSL) directement au proxy avant vous pouvez dissocier le mappage de certificats.
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 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 l'entrée de mappage de certificats cible.CERTIFICATE_MAP_NAME
: nom de la cible le 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 cible.Supprimez le certificat géré par Google :
gcloud certificate-manager certificates delete CERTIFICATE_NAME
Remplacez
CERTIFICATE_NAME
par le nom de la cible. certificat.Supprimez l'autorisation DNS:
gcloud certificate-manager dns-authorizations delete AUTHORIZATION_NAME
Remplacez
AUTHORIZATION_NAME
par le nom de la cible. Autorisation DNS.