Si vous souhaitez utiliser HTTPS :
- Votre conteneur doit continuer à écouter sur le port
$PORT
. Vous devez choisir la manière dont vous fournissez les certificats TLS :
- Utiliser des certificats TLS gérés : dans ce cas, les certificats TLS sont créés automatiquement si nécessaire, et ils sont également renouvelés automatiquement. La présente page décrit cette fonctionnalité, qui est disponible dans les versions Google Kubernetes Engine compatibles.
- Utiliser vos propres certificats : dans ce cas, il vous incombe d'obtenir et de renouveler des certificats. Dans certains contextes, décrits dans la section Limites, vous devez utiliser vos propres certificats.
Si vous utilisez des certificats gérés, vous devez également mapper votre domaine personnalisé afin d'utiliser la fonctionnalité de certificats gérés.
Utiliser HTTPS et HTTP
Par défaut, si vous utilisez des certificats gérés, les clusters ou les services Cloud Run for Anthos avec certificats gérés sont exposés au trafic HTTP et HTTPS. Si vous souhaitez autoriser uniquement le trafic HTTPS, vous pouvez activer les redirections HTTPS pour forcer l'ensemble du trafic à utiliser HTTPS.
Dépannage
Si vous rencontrez des problèmes lors de l'utilisation de certificats TLS gérés, consultez la page Résoudre les problèmes liés aux certificats TLS gérés.
Limites
Les points suivants doivent être pris en compte pour l'utilisation de la fonctionnalité de certificats TLS gérés :
- Les certificats TLS gérés sont désactivés et ne sont pas compatibles avec les clusters privés Cloud Run for Anthos sur Google Cloud.
- Pour utiliser la fonctionnalité de certificats gérés, votre service doit être exposé en externe : il ne peut pas s'agir d'un service local au cluster ni d'un service exposé par le cloud privé virtuel.
- La fonctionnalité de certificats gérés ne fonctionne automatiquement avec Istio que lorsque vous configurez votre cluster pour Cloud Run for Anthos : elle ne fonctionne pas avec le module complémentaire Istio, ni avec d'autres configurations Istio. Si vous devez utiliser le module complémentaire Istio, vous devrez peut-être utiliser vos propres certificats TLS.
- Cette fonctionnalité utilise Let's Encrypt, dont la limite de quota initiale est de 50 certificats TLS par semaine et par domaine enregistré. Vous pouvez demander une augmentation du quota en suivant la documentation de Let's Encrypt.
- Lorsque vous exécutez un cluster Cloud Run pour Anthos sur d'autres plates-formes, telles qu'une plate-forme sur site ou AWS, cette fonctionnalité est désactivée. Pour utiliser cette fonctionnalité, vous devez vous assurer que votre cluster peut accéder à Let's Encrypt et que votre service d'entrée Istio (service
istio-ingress
sousgke-system
) est exposé à l'Internet public. - Lorsque vous mappez des domaines, vous ne pouvez pas utiliser un nom de mappage de domaine identique à l'URL du service dans lequel vous effectuez le mappage si vous utilisez des certificats gérés. Par exemple, si l'URL de votre service est
test.default.example.com
, vous ne pouvez pas définir le nom DomainMapping surtest.default.example.com
.
Avant de commencer
Les instructions figurant sur cette page présupposent ce qui suit :
- Votre cluster Cloud Run for Anthos utilise l'une des versions de cluster compatibles avec la fonctionnalité de certificats TLS gérés.
- Vous avez déployé votre service Cloud Run for Anthos sur le cluster.
- Vous possédez un domaine. Si vous n'en avez pas, vous pouvez en obtenir un auprès de Google ou d'un autre fournisseur de domaine.
- Vous avez créé un mappage de domaine pour votre service et avez mis à jour votre enregistrement DNS en suivant les instructions de la page concernant le mappage de domaines.
- Si vous avez obtenu votre domaine auprès de Google Domains, utilisez-le comme serveur DNS. Sinon, utilisez Cloud DNS ou un serveur DNS de votre choix. L'utilisation d'un domaine à partir de Google Domains est l'option la plus simple.
Versions de cluster compatibles
Pour les versions 1.17.7-gke.15 et ultérieures, les certificats gérés sont activés par défaut pour les clusters publics sur Google Cloud.
Pour les versions de cluster suivantes, la fonctionnalité de certificats gérés est désactivée par défaut. Vous pouvez toutefois activer les certificats gérés si vous souhaitez les utiliser :
- 1.16.0
- 1.15.7-gke.23
- 1.14.10-gke.17
- 1.14.9-gke.23
- 1.14.8-gke.33
Pour déterminer la version actuelle de votre cluster, procédez comme suit :
Accédez à la page Kubernetes Engine dans la console Google Cloud.
Cliquez sur le cluster pour accéder à sa page d'informations.
Recherchez la version du cluster à côté du libellé Version maître.
Désactiver les certificats TLS gérés et HTTPS pour l'intégralité d'un cluster
Pour désactiver les certificats TLS gérés pour un cluster, mettez à jour le fichier ConfigMap config-domainmapping
:
kubectl patch cm config-domainmapping -n knative-serving -p '{"data":{"autoTLS":"Disabled"}}'
Désactiver les certificats TLS gérés et HTTPS pour un mappage de domaine spécifique
Si nécessaire, vous pouvez désactiver la fonctionnalité de certificats TLS gérés pour un mappage de domaine spécifique :
Ajoutez l'annotation
domains.cloudrun.com/disableAutoTLS: "true"
:kubectl annotate domainmappings DOMAIN domains.cloudrun.com/disableAutoTLS=true
Vérifiez que le protocole HTTPS ne fonctionne pas:
curl https://DOMAIN
Assurez-vous que le protocole HTTP est utilisé pour le service :
gcloud run domain-mappings describe --domain DOMAIN
Remplacez DOMAIN par votre propre nom de domaine, par exemple
example.com
.Vérifiez le champ
url:
dans le résultat de la commande ci-dessus : l'URL doit afficherhttp
, et nonhttps
.
Réactiver les certificats TLS gérés et HTTPS
Pour réactiver la fonctionnalité de certificats TLS gérés, procédez comme suit :
Si vous ne l'avez pas déjà fait, créez un mappage de domaine pour votre service et mettez à jour votre enregistrement DNS en suivant les instructions de la page concernant le mappage de domaines.
Activez les certificats TLS gérés et HTTPS en mettant à jour le fichier ConfigMap
config-domainmapping
:kubectl patch cm config-domainmapping -n knative-serving -p '{"data":{"autoTLS":"Enabled"}}'
Attendez quelques minutes que la commande aboutisse, puis assurez-vous que la fonctionnalité de certificats est opérationnelle :
kubectl get kcert
Si le certificat est prêt, un message de ce type doit s'afficher :
NAME READY REASON example.com True
Il peut s'écouler entre 20 secondes et 2 minutes avant que le certificat
Kcert
ne soit prêt. Si vous rencontrez des problèmes, consultez les instructions de dépannage concernant cette fonctionnalité.
Vérifier la réussite de l'opération
Vérifiez que l'enregistrement DNS est activé en exécutant la commande suivante :
gcloud run domain-mappings describe --domain DOMAIN
Remplacez DOMAIN par votre propre nom de domaine, par exemple
example.com
.Vérifiez le champ
url:
dans le résultat de la commande ci-dessus : l'URL doit afficherhttps
, et nonhttp
.Vérifiez l'adresse IP dans la commande ci-dessus, répertoriée sous
resourceRecords:rrdata
, et comparez-la à la valeur affichée lors de l'exécution de la commandehost DOMAIN
. Elles doivent être identiques.
Activer les redirections HTTPS pour Cloud Run for Anthos
Si vous utilisez la fonctionnalité de certificats TLS gérés, le cluster est par défaut exposé au trafic HTTP et HTTPS pour des raisons de rétrocompatibilité. Si vous souhaitez forcer l'ensemble du trafic à utiliser HTTPS, vous pouvez activer les redirections HTTPS pour un mappage de domaine existant en appelant la commande suivante :
kubectl annotate domainmappings DOMAIN domains.cloudrun.com/httpsRedirect=Enabled
où DOMAIN est le nom du mappage de domaine.
Articles associés
- Consultez la section Résoudre les problèmes liés aux certificats TLS gérés pour en savoir plus sur la vérification des mappages de domaines, des quotas de certificats, de l'état des commandes, des délais avant expiration des commandes et des échecs d'autorisation.
- Consultez la page Utiliser vos propres certificats TLS pour utiliser vos propres certificats TLS à la place des certificats TLS gérés.