Ce tutoriel vous explique le processus de déploiement de certificats à l'aide d'un certificat géré par Google avec Certificate Authority Service comme exemple.
Les équilibreurs de charge suivants acceptent les certificats gérés par Google avec Certificate Authority Service:
- É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
Si une règle d'émission de certificats est en vigueur : sur le pool d'autorités de certification cible, le provisionnement du certificat peut échouer pour l'une des raisons suivantes:
- La règle d'émission de certificat a bloqué le certificat demandé. Dans ce cas, vous n'êtes pas facturé, car le certificat n'a pas été délivré.
- La stratégie a appliqué au certificat des modifications qui ne sont pas compatibles avec le gestionnaire de certificats. Dans ce cas, vous êtes toujours facturé, car le certificat a été émis, même s'il n'est pas entièrement compatible avec le Gestionnaire de certificats.
Les certificats émis en suivant les étapes de ce tutoriel ne sont pas approuvés publiquement. Si vous souhaitez émettre des certificats approuvés publiquement, suivez plutôt la procédure décrite dans l'un des tutoriels suivants :
- Déployer un certificat géré par Google avec une autorisation DNS (tutoriel)
- Déployer un certificat géré par Google avec une autorisation d'équilibrage de charge (tutoriel)
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.
Même si vous utilisez un pool d'autorités de certification régional pour émettre une instance certificat TLS, le certificat lui-même est mondial et peut être utilisé dans n'importe quelle région.
Objectifs
Ce guide vous explique comment effectuer les tâches suivantes :
- Créer un certificat géré par Google avec CA Service à l'aide du Gestionnaire de certificats.
- Déployez le certificat sur un équilibreur de charge compatible à l'aide d'un proxy HTTPS cible.
Pour en savoir plus sur le processus de déploiement des certificats, consultez Présentation du déploiement
Avant de commencer
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Pour effectuer les tâches de ce tutoriel, assurez-vous de disposer des rôles suivants :
- Propriétaire du gestionnaire de certificats:nécessaire pour créer et gérer des ressources du gestionnaire de certificats.
- Administrateur de l'équilibreur de charge Compute ou Administrateur réseau Compute : rôle requis pour créer et gérer un proxy cible HTTPS.
- Administrateur du service d'autorité de certification : rôle requis pour effectuer des actions dans le service d'autorité de certification.
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
- Autorisations et rôles pour le service CA
Créez un pool d'autorités de certification. Vous devez créer et activer au moins une autorité de certification dans ce pool d'autorités de certification.
Configurer l'intégration du service CA avec le Gestionnaire de certificats
Configurez le Gestionnaire de certificats pour l'intégrer au service CA comme suit :
Utilisez la commande suivante pour créer un compte de service de gestionnaire de certificats dans le projet Google Cloud cible:
gcloud beta services identity create --service=certificatemanager.googleapis.com \ --project=PROJECT_ID
Remplacez
PROJECT_ID
par l'ID du projet Google Cloud cible.La commande renvoie le nom de l'identité de service créée. Consultez l'exemple ci-dessous :
service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com
Attribuer au compte de service Gestionnaire de certificats le rôle Demandeur de certificat dans le pool d'autorités de certification cible comme suit:
gcloud privateca pools add-iam-policy-binding CA_POOL \ --location REGION \ --member "serviceAccount:SERVICE_ACCOUNT" \ --role roles/privateca.certificateRequester
Remplacez les éléments suivants :
CA_POOL
: ID du pool d'autorités de certification cible.REGION
: région Google Cloud cible.SERVICE_ACCOUNT
: nom complet du compte de service que vous avez créé à l'étape 1.
Créez une ressource de configuration d'émission de certificats pour votre pool d'autorités de certification:
gcloud certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \ --ca-pool=CA_POOL \ [--lifetime=CERTIFICATE_LIFETIME] \ [--rotation-window-percentage=ROTATION_WINDOW_PERCENTAGE] \ [--key-algorithm=KEY_ALGORITHM]
Remplacez les éléments suivants :
ISSUANCE_CONFIG_NAME
: nom unique de la ressource de configuration d'émission de certificats.CA_POOL
: chemin d'accès complet et nom du pool d'autorités de certification que vous souhaitez attribuer à cette ressource de configuration d'émission de certificats.CERTIFICATE_LIFETIME
: durée de vie du certificat en jours. Les valeurs valides sont comprises entre 21 et 30 jours dans format de durée standard. La valeur par défaut est de 30 jours (30D
). Ce paramètre est facultatif.ROTATION_WINDOW_PERCENTAGE
: pourcentage de la durée de vie du certificat au cours duquel un renouvellement est déclenché. Ce paramètre est facultatif.La valeur par défaut est 66 %. Vous devez définir le pourcentage de période de rotation par rapport à la durée de vie du certificat afin que le certificat soit renouvelé au moins 7 jours après son émission et au moins 7 jours avant son expiration.
KEY_ALGORITHM
: algorithme de chiffrement utilisé pour générer la clé privée. Les valeurs valides sontecdsa-p256
oursa-2048
. La valeur par défaut estrsa-2048
. Ce paramètre est facultatif.
Pour en savoir plus sur les configurations d'émission de certificats, consultez Gérer les configurations d'émission de certificats.
Créer un certificat géré par Google émis par votre instance CA Service
Créez un certificat géré par Google émis par votre instance CA Service 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.
Dans le champ Emplacement, sélectionnez Mondial.
Pour Champ d'application, choisissez n'importe quelle 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 Privé.
Indiquez 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 nom de domaine, tel que
myorg.example.com
.Pour Certificate Issuance Config (Configuration d'émission de certificats), sélectionnez le nom de la ressource de configuration d'émission de certificats qui fait référence au pool d'autorités de certification cible.
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 un équilibreur de charge réseau proxy externe global:
Exécutez la commande suivante :
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="DOMAIN_NAMES" \ --issuance-config=ISSUANCE_CONFIG_NAME
Remplacez les éléments suivants :
CERTIFICATE_NAME
: nom unique du certificat.DOMAIN_NAMES
: liste des domaines cibles de ce certificat, séparés par une virgule. Chaque nom de domaine doit être un nom de domaine complet, tel quemyorg.example.com
.ISSUANCE_CONFIG_NAME
: nom de la ressource de configuration d'émission de certificats faisant référence au pool d'autorités de certification cible.
Pour un équilibreur de charge d'application interne interrégional:
Exécutez la commande suivante :
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="DOMAIN_NAMES" \ --issuance-config=ISSUANCE_CONFIG_NAME \ --scope=all-regions
Remplacez les éléments suivants :
CERTIFICATE_NAME
: nom unique du certificat.DOMAIN_NAMES
: liste des domaines cibles de ce certificat, séparés par une virgule. Chaque nom de domaine doit être un nom de domaine complet, tel quemyorg.example.com
.ISSUANCE_CONFIG_NAME
: nom de la ressource de configuration d'émission de certificat faisant référence au pool d'autorités de certification cible.
API
Créez le certificat en envoyant une requête POST
à la méthode certificates.create
comme suit :
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:
POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME" { "managed": { "domains": ["DOMAIN_NAME"], "issuanceConfig": "ISSUANCE_CONFIG_NAME", } }
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet Google Cloud cible.CERTIFICATE_NAME
: nom unique du certificat.DOMAIN_NAME
: domaine cible de ce certificat. Le nom de domaine doit être un nom de domaine complet, tel quemyorg.example.com
.ISSUANCE_CONFIG_NAME
: nom de la ressource de configuration d'émission de certificats qui référence un pool d'autorités de certification cible.
Pour un équilibreur de charge d'application interne interrégional :
POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME" { "managed": { "domains": ["DOMAIN_NAME"], "issuanceConfig": "ISSUANCE_CONFIG_NAME", "scope": "ALL_REGIONS" } }
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet Google Cloud cible.CERTIFICATE_NAME
: nom unique du certificat.DOMAIN_NAME
: domaine cible de ce certificat. Le nom de domaine doit être un nom de domaine complet, tel quemyorg.example.com
.ISSUANCE_CONFIG_NAME
: nom de la ressource de configuration d'émission de certificat faisant référence au pool d'autorités de certification cible.
Pour une présentation du processus de déploiement des certificats, consultez Présentation du déploiement
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. L'opération peut prendre plusieurs minutes
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 :
createTime: '2021-10-20T12:19:53.370778666Z' expireTime: '2022-05-07T05:03:49Z' managed: domains: - myorg.example.com issuanceConfig: projects/myProject/locations/global/certificateIssuanceConfigs/myIssuanceConfig 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 décrit la procédure à suivre pour 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 listées dans les sections Configurer l'intégration du service CA au Gestionnaire de certificats et Créer un certificat géré par Google et émis par votre instance de service CA.
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'une carte 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 la procédure à suivre pour déployer un certificat à l'aide d'un mappage de certificats.
Créer un mappage de certificat
Créer un mappage de certificats qui fera référence à l'entrée de mappage de certificats associé à votre certificat:
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
Remplacez CERTIFICATE_MAP_NAME
par le nom du mappage de certificat cible.
Créer une entrée de mappage de certificat
Créez une entrée de mappage de certificat et associez-la à votre certificat ainsi qu'à votre mappage de certificat :
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 de l'entrée de mappage de certificatsCERTIFICATE_MAP_NAME
: nom du mappage de certificat sur lequel cette entrée de mappage de certificat associeCERTIFICATE_NAME
: nom du certificat que vous souhaitez associer à cette entrée de mappage de certificatHOSTNAME
: nom d'hôte que vous souhaitez associer avec cette entrée de mappage de certificat
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 l'entrée de mappage de certificats cibleCERTIFICATE_MAP_NAME
: nom du mappage de certificat sur lequel 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 :
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"
Remplacez les éléments suivants :
PROXY_NAME
: nom du proxy cibleCERTIFICATE_MAP_NAME
: nom du mappage de certificat faisant référence à votre entrée de mappage de certificat et au certificat associé
Si des certificats TLS (SSL) existants sont directement associés au proxy, le proxy privilégie les certificats référencés par le mappage de certificats. les certificats TLS (SSL) directement associés.
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 en même temps que l'équilibreur de charge.CERTIFICATE_NAME
: nom du certificat.
Dépannage
Pour connaître la procédure de dépannage, consultez la section Problèmes liés aux certificats émis par une instance de service CA.
Effectuer un nettoyage
Pour annuler les modifications que vous avez apportées dans ce tutoriel, procédez comme suit :
Dissociez le mappage de certificats 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 celles-ci avec les certificats TLS (SSL) associés.
- Si aucun certificat TLS (SSL) n'était 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 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
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 du entrée de mappage de certificat cibleCERTIFICATE_MAP_NAME
: nom du mappage de certificat cible
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:
Console
Dans la console Google Cloud, accédez à la page Gestionnaire de certificats.
Dans l'onglet Certificats, cochez la case 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_NAME
par le nom de la cible. certificat.Supprimez la ressource de configuration d'émission de certificats :
Console
Dans la console Google Cloud, accédez à la page Gestionnaire de certificats.
Dans l'onglet Issuance Configs (Configurations d'émission), cochez la case configuration d'émission.
Cliquez sur Supprimer.
Dans la boîte de dialogue qui s'affiche, cliquez sur Supprimer pour confirmer.
gcloud
gcloud certificate-manager issuance-configs delete ISSUANCE_CONFIG_NAME
Remplacez
ISSUANCE_CONFIG_NAME
par le nom de la cible. ressource de configuration d'émission de certificats.Supprimez le pool d'autorités de certification comme décrit dans la section Supprimer un pool d'autorités de certification.
Gardez à l'esprit que pour désactiver la dernière autorité de certification activée dans le pool d'autorités de certification référencé dans le configuration d'émission de certificats ou supprimer complètement le pool d'autorités de certification référencé, vous devez Supprimez d'abord toutes les configurations d'émission de certificats qui font référence à ce pool d'autorités de certification.