Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Vous pouvez sécuriser la passerelle d'entrée avec HTTPS à l'aide du protocole TLS simple, et activer les connexions HTTPS vers des pages Web spécifiques. En outre, vous pouvez rediriger les connexions HTTP vers HTTPS.
HTTPS crée un canal sécurisé sur un réseau non sécurisé, empêchant ainsi les attaques MITM ("man in the middle") et chiffrant le trafic entre le client et le serveur. Pour préparer un serveur Web à accepter des connexions HTTPS, un administrateur doit créer un certificat de clé publique pour celui-ci. Ce certificat doit être signé par une autorité de certification approuvée pour qu'un navigateur Web l'accepte sans afficher d'avertissement.
Modifiez la passerelle nommée external-gateway dans l'espace de noms kf à l'aide de l'éditeur Kubernetes intégré :
kubectl edit gateway -n kf external-gateway
Si vous disposez d'un certificat et d'une clé pour votre service, créez un secret Kubernetes pour la passerelle d'entrée. Assurez-vous que le nom du secret ne commence pas par istio ni prometheus. Pour cet exemple, le secret est nommé myapp-https-credential.
Sous servers:
Ajoutez une section pour le port 443.
Sous tls:, définissez credentialName sur le nom du secret que vous venez de créer.
Sous hosts:, ajoutez le nom d'hôte du service que vous souhaitez sécuriser via HTTPS. Ce paramètre peut être défini sur un domaine entier à l'aide d'un caractère générique (par exemple, *.example.com) ou simplement réduit à un nom d'hôte (par exemple, myapp.example.com).
Vous devriez déjà voir une section concernant le port HTTP 80 sous servers:. Conservez cette section dans la définition de la passerelle si vous souhaitez que l'ensemble du trafic entre en tant que trafic HTTP.
Pour rediriger HTTP vers HTTPS, ajoutez la valeur httpsRedirect: true sous tls dans la section du serveur HTTP. Consultez la documentation sur la passerelle Istio pour en savoir plus. Notez que si vous ajoutez cette valeur à la section lorsque hosts est défini sur *, l'ensemble du trafic est redirigé vers HTTPS. Si vous souhaitez ne rediriger le trafic HTTP vers HTTPS que pour un domaine ou une application, ajoutez une section HTTP distincte qui spécifie la redirection.
Vous trouverez ci-dessous un exemple de spécification (spec) de passerelle qui configure HTTPS pour myapp.example.com et redirige HTTP vers HTTPS pour cet hôte :
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[],[],null,["# Setting up HTTPS Ingress\n\nYou can secure the ingress gateway with HTTPS by using simple TLS, and enable HTTPS connections to specific webpages. In addition, you can redirect HTTP connections to HTTPS.\n\nHTTPS creates a secure channel over an insecure network, protecting against man-in-the-middle attacks and encrypting traffic between the client and server. To prepare a web server to accept HTTPS connections, an administrator must create a public key certificate for the server. This certificate must be signed by a trusted certificate authority for a web browser to accept it without warning.\n| **Note:** These instructions supplement the Istio instructions to [configure a TLS ingress gateway](https://istio.io/latest/docs/tasks/traffic-management/ingress/secure-ingress), and assume that a valid certificate and private key for the server have already been created.\n\nEdit the gateway named external-gateway in the `kf` namespace using the built-in Kubernetes editor: \n\n```\nkubectl edit gateway -n kf external-gateway\n```\n\n1. Assuming you have a certificate and key for your service, create a Kubernetes secret for the ingress gateway. Make sure the secret name does not begin with `istio` or `prometheus`. For this example, the secret is named `myapp-https-credential`.\n2. Under `servers:`\n 1. Add a section for port 443.\n 2. Under `tls:`, set the `credentialName` to the name of the secret you just created.\n 3. Under `hosts:`, add the host name of the service you want to secure with HTTPS. This can be set to an entire domain using a wildcard (e.g. `*.example.com`) or scoped to just one hostname (e.g. `myapp.example.com`).\n3. There should already be a section under `servers:` for port 80 HTTP. Keep this section in the Gateway definition if you would like all traffic to come in as HTTP.\n4. To redirect HTTP to HTTPS, add the value `httpsRedirect: true` under `tls` in the HTTP server section. See the [Istio Gateway documentation](https://istio.io/latest/docs/reference/config/networking/gateway/) for reference. Note that adding this in the section where `hosts` is set to `*` means that **all** traffic is redirected to HTTPS. If you only want to redirect HTTP to HTTPS for a single app/domain, add a separate HTTP section specifying the redirect.\n\nShown below is an example of a Gateway `spec` that sets up HTTPS for `myapp.example.com` and redirects HTTP to HTTPS for that host: \n\n spec:\n selector:\n istio: ingressgateway\n servers:\n - hosts:\n - myapp.example.com\n port:\n name: https\n number: 443\n protocol: HTTPS\n tls:\n credentialName: myapp-https-credential\n mode: SIMPLE\n - hosts:\n - myapp.example.com\n port:\n name: http-my-app\n number: 80\n protocol: HTTP\n tls:\n httpsRedirect: true\n - hosts:\n - '*'\n port:\n name: http\n number: 80\n protocol: HTTP"]]