Après avoir créé un service Media CDN (ou plusieurs services), vous pouvez émettre et associer des certificats SSL (TLS) pour assurer une connectivité sécurisée dans les navigateurs et les applications mobiles.
Émettre un certificat géré
Pour créer un certificat géré et l'associer à votre service Media CDN, procédez comme suit :
- Démontrez la propriété ("autorisation") des domaines pour lesquels vous souhaitez émettre des certificats en créant un jeton d'authentification et en ajoutant un enregistrement DNS.
- Créez un certificat de type
EDGE_CACHE
avec un ou plusieurs noms de domaine basés sur cette autorisation. - Associez ce certificat à un ou plusieurs services de cache périphérique.
Vous devez disposer des autorisations IAM (Identity and Access Management) suivantes pour autoriser, créer et associer des certificats à un service de cache périphérique :
certificatemanager.certs.create
certificatemanager.certs.get
certificatemanager.certs.list
certificatemanager.certs.use
certificatemanager.dnsauthorizations.create
certificatemanager.dnsauthorizations.get
certificatemanager.dnsauthorizations.list
certificatemanager.dnsauthorizations.use
Utilisateurs qui doivent joindre un certificat existant à un
Media CDN
nécessitent l'certificatemanager.certs.get
,
certificatemanager.certs.list
et certificatemanager.certs.use
Autorisations IAM.
Avant de commencer
- Vous devez disposer d'un nom de domaine enregistré sur lequel vous pouvez mettre à jour les enregistrements DNS publics.
- Consultez la présentation des certificats SSL.
Créer une autorisation DNS
Tout d'abord, vous devez créer une autorisation DNS pour démontrer la propriété du domaine avant de pouvoir émettre des certificats pour celui-ci. L'autorisation DNS utilise le protocole DNS-01 ACME et vous permet d'émettre un certificat avant de diriger le trafic utilisateur à votre service de mise en cache périphérique.
Définissez la valeur de domain
sur le nom de domaine pour lequel vous souhaitez créer un certificat, comme suit :
gcloud
Exécutez la commande gcloud certificate-manager dns-authorizations
:
gcloud certificate-manager dns-authorizations create DOMAIN_NAME_AUTH \ --domain="DOMAIN_NAME" gcloud certificate-manager dns-authorizations describe DOMAIN_NAME_AUTH
gcloud CLI renvoie une réponse avec les détails de l'enregistrement DNS que vous devez ajouter.
createTime: '2022-01-14T13:35:00.258409106Z' dnsResourceRecord: data: 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. name: _acme-challenge.example.com. type: CNAME domain: example.com name: projects/myProject/locations/global/dnsAuthorizations/myAuthorization updateTime: '2022-01-14T13:35:01.571086137Z'
Terraform
Si vous utilisez Cloud DNS pour votre domaine, consultez les étapes pour ajouter un enregistrement à votre domaine hébergé. Si vous utilisez un autre fournisseur DNS, consultez sa documentation pour ajouter un enregistrement CNAME.
- Vous pouvez répéter cette étape pour chaque domaine pour lequel vous devez émettre un certificat.
- Les certificats peuvent contenir plusieurs domaines, ou vous pouvez choisir d'émettre un certificat par domaine, si nécessaire. Une fois que vous disposez d'une autorisation pour un domaine, vous pouvez l'utiliser pour émettre des certificats.
- Nous vous recommandons de créer moins de certificats, en incluant dans chaque certificat tous les noms de domaine utilisés pour votre service. Cela améliore les performances des clients lors de l'utilisation de plusieurs domaines, car les clients peuvent plus souvent bénéficier de la reprise TLS.
- Chaque service de cache périphérique peut référencer jusqu'à cinq certificats. En limitant le nombre de certificats, vous pouvez respecter cette limite.
Si vous devez récupérer les valeurs de l'enregistrement DNS à une date ultérieure, envoyez une requête pour la valeur authorizationName
que vous avez fourni lors de la création de l'autorisation DNS :
Créer un certificat
Une fois que vous avez ajouté l'enregistrement DNS prouvant que vous êtes propriétaire du ou des domaines pour lesquels vous souhaitez créer un certificat, vous pouvez envoyer une requête de création de certificat.
La liste des autorisations dnsAuthorizations
doit correspondre aux noms des autorisations existantes que vous avez créées précédemment. Si vous souhaitez ajouter plusieurs domaines au même certificat, fournissez une liste de domains[]
ainsi que les dnsAuthorizations[]
correspondantes lors de l'envoi de la requête.
Pour créer un certificat à l'aide d'une autorisation pour test.example.com
appelée test-example-com
, procédez comme suit :
gcloud
Exécutez la commande gcloud certificate-manager certificates
:
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="DOMAIN_NAME" \ --dns-authorizations="DOMAIN_NAME_AUTH" \ --scope=EDGE_CACHE
Cela crée un certificat avec chaque autorisation DNS à l'état AUTHORIZING
et le certificat à l'état PROVISIONING
:
Create request issued for: [DOMAIN_NAME] Waiting for operation [projects/my-project/locations/global/operations/operatio n-1613425627385-5bb66ed644e91-3e2a2f1f-71979cf8] to complete...done. Created certificate [CERTIFICATE_NAME].
Terraform
La création du certificat peut prendre quelques minutes (et jusqu'à une heure), en fonction des éléments suivants :
- La vitesse à laquelle votre fournisseur DNS propage les modifications de configuration.
- Le nombre de domaines que vous essayez de valider pour créer des certificats.
Le champ state
indique l'état actuel du certificat :
- PROVISIONING : le certificat est toujours en cours de provisionnement. Cela est probablement dû au fait que la demande de création de certificat n'a été effectuée que récemment.
- FAILED : renvoyé après plusieurs tentatives pour valider le domaine ou émettre le certificat. Pour en savoir plus, consultez les champs
provisioning_issue
,authorization_attempt_info
etfailure_reason
. - ACTIVE : le domaine a bien été validé et le certificat a été provisionné.
Pour vérifier l'état du certificat :
gcloud
Exécutez la commande gcloud certificate-manager certificates
:
gcloud certificate-manager certificates describe CERTIFICATE_NAME
Dans cet exemple, l'autorisation DNS est AUTHORIZED
et l'état du certificat est ACTIVE
:
createTime: '2021-02-07T20:03:39.867762684Z' expireTime: '2021-03-09T19:20:41Z' managed: authorizationAttemptInfo: - domain: DOMAIN_NAME state: AUTHORIZED dnsAuthorizations: - projects/111111111111/locations/global/dnsAuthorizations/test-example-com domains: - DOMAIN_NAME state: ACTIVE name: projects/my-project/locations/global/certificates/test-example-com scope: EDGE_CACHE subjectAlternativeNames: - DOMAIN_NAME updateTime: '2021-02-07T20:03:40.297242738Z'
Une fois le certificat ACTIVE
, vous pouvez l'associer à un service de cache périphérique.
Associer un certificat à un service
Une fois que vous avez créé un certificat géré, vous pouvez l'associer à un ou plusieurs de vos services de cache périphérique.
Les certificats peuvent être associés à des services existants et nouveaux en mettant à jour la liste des edgeSslCertificates
dans le service.
Vous devez disposer des autorisations IAM suivantes pour associer des certificats à un service de cache périphérique :
certificatemanager.certs.get
certificatemanager.certs.list
certificatemanager.certs.use
networkservices.edgeCacheServices.get
networkservices.edgeCacheServices.list
networkservices.edgeCacheServices.update
Pour associer un certificat à un service, procédez comme suit :
gcloud
Exécutez la commande gcloud edge-cache services export
pour exporter le fichier YAML de votre service :
gcloud edge-cache services export MY_SERVICE \ --destination=my-service.yaml
Modifiez le fichier YAML exporté pour ajouter votre certificat :
name: MY_SERVICE edgeSslCertificates: - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME
Exécutez la commande gcloud edge-cache services import
:
gcloud edge-cache services import MY_SERVICE \ --source=my-service.yaml
Output:
Request issued for: [MY_SERVICE] Updated service [MY_SERVICE]
La commande renvoie une description de votre service, y compris la liste des edgeSslCertificates
maintenant associés :
name: MY_SERVICE edgeSslCertificates: - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME
Une fois la configuration mise à jour, le certificat se propage à tous les emplacements périphériques en quelques minutes. Pour vérifier que le certificat est associé à votre service de cache périphérique avant d'effectuer les modifications DNS, vous pouvez envoyer une requête à l'adresse IPv4 ou IPv6 associée à votre service.
Remplacer et supprimer des certificats
Vous pouvez ajouter et supprimer des certificats en mettant à jour la liste des certificats.
Lorsque vous utilisez l'option --edge-ssl-certificate
de gcloud CLI, les certificats sont uniquement ajoutés à la liste des certificats existants et ne sont pas remplacés. Cela vous évite de supprimer accidentellement un certificat valide et actif.
Pour supprimer le certificat test-example-com
de notre service dans l'exemple suivant, vous pouvez exporter votre service vers YAML à l'aide des commandes d'importation et d'exportation.
name: my-service edgeSslCertificates: - projects/PROJECT_ID/locations/global/certificates/test-example-com - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME
Les commandes suivantes montrent comment exporter le service, supprimer la référence de certificat et importer le service mis à jour.
gcloud
Exécutez la commande gcloud edge-cache services
:
gcloud edge-cache services export MY_SERVICE --destination=my-service.yaml
Exported [projects/my-project/locations/global/edgeCacheServices/MY_SERVICE] to 'my-service.yaml'.
Supprimez les certificats que vous ne souhaitez plus que le service utilise en utilisant votre éditeur de texte préféré :
name: MY_SERVICE edgeSslCertificates: - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME
Enregistrez le fichier modifié, puis importez le service mis à jour :
gcloud
Exécutez la commande gcloud edge-cache services
:
gcloud edge-cache services import MY_SERVICE --source=my-service.yaml
Request issued for: [MY_SERVICE] Updated service [MY_SERVICE].
Il n'y a pas de limite au nombre de services auxquels un certificat peut être associé, et chaque service de cache périphérique peut référencer jusqu'à cinq certificats.
Certificats autogérés
Vous pouvez importer vos propres certificats dans Media CDN si vous avez des cas d'utilisation spécifiques qui le nécessitent.
Pour importer un certificat et sa clé associée dans le gestionnaire de certificats, procédez comme suit :
gcloud
Exécutez la commande gcloud certificate-manager certificates
. Assurez-vous de spécifier --scope=EDGE_CACHE
pour les certificats associés à Media CDN.
gcloud certificate-manager certificates create stream-example-com \ --certificate-file=CERT.pem \ --private-key-file=PRIVATE_KEY.pem \ --scope=EDGE_CACHE
Create request issued for: [stream-example-com] Created certificate [stream-example-com].
Une fois le certificat importé, vous pouvez l'associer à un EdgeCacheService comme vous le feriez pour un certificat géré.
Résoudre les problèmes d'émission de certificats
Consultez le guide de dépannage pour savoir comment résoudre les erreurs courantes d'autorisation et d'émission de certificats.
Étapes suivantes
- Redirigez toutes les requêtes HTTP vers HTTPS pour chiffrer les communications par défaut.
- Affichez les journaux de requêtes avec Logging.
- Configurez des requêtes signées pour protéger votre contenu.
- Optimisez les clés de cache et les valeurs TTL pour améliorer les taux de succès de mise en cache.
- Configurez la correspondance de route avancée et ajoutez des origines supplémentaires.