26.2. Itinéraires sécurisés


Les itinéraires sécurisés permettent d'utiliser plusieurs types de terminaisons TLS pour fournir des certificats au client. Les sections suivantes décrivent comment créer des itinéraires de recryptage, de bordure et de passage avec des certificats personnalisés.

Important

Si vous créez des itinéraires dans Microsoft Azure via des points de terminaison publics, les noms des ressources sont soumis à des restrictions. Vous ne pouvez pas créer de ressources qui utilisent certains termes. Pour obtenir une liste des termes restreints par Azure, voir Résoudre les erreurs de noms de ressources réservées dans la documentation Azure.

26.2.1. Création d'une route de recryptage avec un certificat personnalisé

Vous pouvez configurer une route sécurisée en utilisant la terminaison TLS reencrypt avec un certificat personnalisé à l'aide de la commande oc create route.

Conditions préalables

  • Vous devez disposer d'une paire certificat/clé dans des fichiers codés PEM, où le certificat est valide pour l'hôte de la route.
  • Il se peut que vous disposiez d'un certificat d'autorité de certification distinct dans un fichier codé PEM qui complète la chaîne de certificats.
  • Vous devez disposer d'un certificat d'autorité de certification de destination distinct dans un fichier codé en PEM.
  • Vous devez avoir un service que vous souhaitez exposer.
Note

Les fichiers clés protégés par un mot de passe ne sont pas pris en charge. Pour supprimer une phrase de passe d'un fichier clé, utilisez la commande suivante :

$ openssl rsa -in password_protected_tls.key -out tls.key

Procédure

Cette procédure permet de créer une ressource Route avec un certificat personnalisé et de recrypter la terminaison TLS. La procédure suivante suppose que la paire certificat/clé se trouve dans les fichiers tls.crt et tls.key dans le répertoire de travail actuel. Vous devez également spécifier un certificat d'autorité de certification de destination pour permettre au contrôleur d'entrée de faire confiance au certificat du service. Vous pouvez également spécifier un certificat d'autorité de certification si nécessaire pour compléter la chaîne de certificats. Remplacez les noms de chemin réels pour tls.crt, tls.key, cacert.crt, et (éventuellement) ca.crt. Remplacez frontend par le nom de la ressource Service que vous souhaitez exposer. Remplacez le nom d'hôte approprié par www.example.com.

  • Créer une ressource Route sécurisée en utilisant la terminaison TLS reencrypt et un certificat personnalisé :

    $ oc create route reencrypt --service=frontend --cert=tls.crt --key=tls.key --dest-ca-cert=destca.crt --ca-cert=ca.crt --hostname=www.example.com

    Si vous examinez la ressource Route qui en résulte, elle devrait ressembler à ce qui suit :

    Définition YAML de la route sécurisée

    apiVersion: route.openshift.io/v1
    kind: Route
    metadata:
      name: frontend
    spec:
      host: www.example.com
      to:
        kind: Service
        name: frontend
      tls:
        termination: reencrypt
        key: |-
          -----BEGIN PRIVATE KEY-----
          [...]
          -----END PRIVATE KEY-----
        certificate: |-
          -----BEGIN CERTIFICATE-----
          [...]
          -----END CERTIFICATE-----
        caCertificate: |-
          -----BEGIN CERTIFICATE-----
          [...]
          -----END CERTIFICATE-----
        destinationCACertificate: |-
          -----BEGIN CERTIFICATE-----
          [...]
          -----END CERTIFICATE-----

    Voir oc create route reencrypt --help pour plus d'options.

26.2.2. Création d'une route périphérique avec un certificat personnalisé

Vous pouvez configurer un itinéraire sécurisé utilisant la terminaison TLS en périphérie avec un certificat personnalisé à l'aide de la commande oc create route. Avec un itinéraire périphérique, le contrôleur d'entrée met fin au cryptage TLS avant de transmettre le trafic au pod de destination. L'itinéraire spécifie le certificat et la clé TLS que le contrôleur d'entrée utilise pour l'itinéraire.

Conditions préalables

  • Vous devez disposer d'une paire certificat/clé dans des fichiers codés PEM, où le certificat est valide pour l'hôte de la route.
  • Il se peut que vous disposiez d'un certificat d'autorité de certification distinct dans un fichier codé PEM qui complète la chaîne de certificats.
  • Vous devez avoir un service que vous souhaitez exposer.
Note

Les fichiers clés protégés par un mot de passe ne sont pas pris en charge. Pour supprimer une phrase de passe d'un fichier clé, utilisez la commande suivante :

$ openssl rsa -in password_protected_tls.key -out tls.key

Procédure

Cette procédure crée une ressource Route avec un certificat personnalisé et une terminaison TLS. La procédure suivante suppose que la paire certificat/clé se trouve dans les fichiers tls.crt et tls.key dans le répertoire de travail actuel. Vous pouvez également spécifier un certificat CA si nécessaire pour compléter la chaîne de certificats. Remplacez les noms de chemin réels par tls.crt, tls.key et (éventuellement) ca.crt. Remplacez le nom du service que vous souhaitez exposer par frontend. Remplacez le nom d'hôte approprié par www.example.com.

  • Créer une ressource Route sécurisée en utilisant la terminaison TLS et un certificat personnalisé.

    $ oc create route edge --service=frontend --cert=tls.crt --key=tls.key --ca-cert=ca.crt --hostname=www.example.com

    Si vous examinez la ressource Route qui en résulte, elle devrait ressembler à ce qui suit :

    Définition YAML de la route sécurisée

    apiVersion: route.openshift.io/v1
    kind: Route
    metadata:
      name: frontend
    spec:
      host: www.example.com
      to:
        kind: Service
        name: frontend
      tls:
        termination: edge
        key: |-
          -----BEGIN PRIVATE KEY-----
          [...]
          -----END PRIVATE KEY-----
        certificate: |-
          -----BEGIN CERTIFICATE-----
          [...]
          -----END CERTIFICATE-----
        caCertificate: |-
          -----BEGIN CERTIFICATE-----
          [...]
          -----END CERTIFICATE-----

    Voir oc create route edge --help pour plus d'options.

26.2.3. Création d'une route passante

Vous pouvez configurer une route sécurisée utilisant la terminaison passthrough à l'aide de la commande oc create route. Avec la terminaison passthrough, le trafic crypté est envoyé directement à la destination sans que le routeur n'assure la terminaison TLS. Par conséquent, aucune clé ni aucun certificat n'est nécessaire sur l'itinéraire.

Conditions préalables

  • Vous devez avoir un service que vous souhaitez exposer.

Procédure

  • Créer une ressource Route:

    $ oc create route passthrough route-passthrough-secured --service=frontend --port=8080

    Si vous examinez la ressource Route qui en résulte, elle devrait ressembler à ce qui suit :

    Une route sécurisée à l'aide de la terminaison Passthrough

    apiVersion: route.openshift.io/v1
    kind: Route
    metadata:
      name: route-passthrough-secured 1
    spec:
      host: www.example.com
      port:
        targetPort: 8080
      tls:
        termination: passthrough 2
        insecureEdgeTerminationPolicy: None 3
      to:
        kind: Service
        name: frontend

    1
    Le nom de l'objet, qui est limité à 63 caractères.
    2
    Le champ termination est défini sur passthrough. C'est le seul champ obligatoire de tls.
    3
    Facultatif : insecureEdgeTerminationPolicy. Les seules valeurs valables sont None, Redirect, ou empty pour disabled.

    Le module de destination est chargé de fournir des certificats pour le trafic au point final. Il s'agit actuellement de la seule méthode permettant d'exiger des certificats de clients, également connus sous le nom d'authentification bidirectionnelle.

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.