Configurer le protocole TLS depuis Edge vers le backend (Cloud et cloud privé)

<ph type="x-smartling-placeholder"></ph> Vous consultez la documentation Apigee Edge.
Accédez à la page Documentation sur Apigee X.
En savoir plus

Un proxy d'API fonctionne comme le mappage d'un point de terminaison accessible au public avec votre service de backend. Un hôte virtuel définit la manière dont le proxy d'API public est exposé à une application. Pour exemple, l'hôte virtuel détermine si le proxy d'API est accessible en utilisant TLS. Lorsque vous configurer un proxy d'API, modifier sa définition ProxyEndpoint pour configurer les hôtes virtuels qu'il pour différentes utilisations.

TargetEndpoint est l'équivalent sortant de ProxyEndpoint. Fonctions TargetEndpoint en tant que client HTTP d'Edge à un service de backend. Lors de la création d'un proxy d'API, vous pouvez configurer d'utiliser zéro, un ou plusieurs TargetEndpoints.

En savoir plus:

Configurer un TargetEndpoint ou TargetServer

Pour configurer un TargetEndpoint, modifiez l'objet XML qui définit le TargetEndpoint. Vous pouvez vous pouvez modifier le TargetEndpoint en modifiant le fichier XML qui définit le TargetEndpoint dans votre proxy d'API, ou modifiez-le dans l'interface de gestion Edge.

Pour utiliser l'interface utilisateur de gestion Edge pour modifier le TargetEndpoint:

  1. Connectez-vous à l'interface utilisateur de gestion Edge à l'adresse https://enterprise.apigee.com.
  2. Sélectionnez le nom du proxy d'API à mettre à jour.
  3. Sélectionnez l'onglet Dévelop (Développer).
  4. Sous Points de terminaison cibles, sélectionnez par défaut.
  5. Dans la zone de code, la définition TargetEndpoint s'affiche, semblable à ceci:
    <TargetEndpoint name="default">
      <Description/>
      <FaultRules/>
      <Flows/>
      <PreFlow name="PreFlow">
        <Request/>
        <Response/>
      </PreFlow>
      <PostFlow name="PostFlow">
        <Request/>
        <Response/>
      </PostFlow>
      <HTTPTargetConnection>
        <Properties/>
        <SSLInfo>
          <Enabled>true</Enabled>
          <TrustStore>ref://myTrustStoreRef</TrustStore>
        </SSLInfo>
        <URL>https://mocktarget.apigee.net</URL>
      </HTTPTargetConnection>
    </TargetEndpoint>
  6. Configurez un Truststore comme décrit ci-dessous dans À propos de la configuration TLS avec le backend.
  7. Apportez les modifications souhaitées et enregistrez le proxy. Si le proxy d'API a été déployé, enregistrement le redéploie avec le nouveau paramètre.

Notez que la définition TargetEndpoint contient une propriété name. Vous utilisez la valeur la propriété name ; pour configurer la définition ProxyEndpoint d'un proxy d'API afin qu'il utilise le Point de terminaison cible. Pour en savoir plus, consultez la documentation de référence sur la configuration du proxy d'API.

TargetEndpoints peut être configuré pour référencer un TargetServer, plutôt que le nom explicite l'URL cible. Une configuration TargetServer dissocie les URL de point de terminaison concrètes des Configurations TargetEndpoint Les TargetServers sont utilisés pour l'équilibrage de charge et le basculement sur plusieurs instances de serveur backend.

Vous trouverez ci-dessous un exemple de définition de TargetServer:

<TargetServer name="target1">
  <Host>mocktarget.apigee.net</Host>
  <Port>80</Port>
  <IsEnabled>true</IsEnabled>
</TargetServer> 

Un TargetServer est référencé par son nom dans le <HTTPTargetConnection>. dans une définition TargetEndpoint. Vous pouvez configurer un ou plusieurs TargetServers nommés, comme indiqué ci-dessous.

<TargetEndpoint name="default">
  ...
  <HTTPTargetConnection>
    <LoadBalancer>
      <Server name="target1" />
      <Server name="target2" />
    </LoadBalancer>
    <Path>/test</Path>
  </HTTPTargetConnection>
  ...
</TargetEndpoint>

Reportez-vous à la section Équilibrage de charge entre les serveurs backend.

À propos de la configuration TLS avec le backend

Avant de configurer l'accès TLS au backend, vous devez connaître deux éléments importants points:

  1. Par défaut, Edge ne valide pas le certificat backend. Vous devez créer un Truststore pour configurer Edge pour valider le certificat.
  2. Utilisez une référence pour spécifier le keystore ou le truststore utilisé par Edge.

Ces deux points sont décrits ci-dessous.

Définir un Truststore pour activer la validation des certificats

Lorsqu'une requête TLS est envoyée via un TargetEndpoint ou un TargetServer, Edge ne fait pas valider par défaut le certificat TLS reçu du serveur backend. Cela signifie qu'Edge ne valide pas ce qui suit:

  • Le certificat a été signé par une autorité de certification approuvée.
  • Le certificat n'a pas expiré.
  • Le certificat présente un nom commun. S'il existe un nom commun, Edge ne valide pas que le nom commun correspond au nom d’hôte spécifié dans l’URL.

Pour configurer Edge afin de valider le certificat backend, vous devez:

  1. Créez un Truststore sur Edge.
  2. Importez le certificat ou la chaîne de certificats du serveur dans le truststore. Si le certificat du serveur est signé par un tiers, vous devez importer le fichier de certification complète, y compris le certificat de l'autorité de certification racine, au truststore. Il n'existe aucune autorité de certification implicitement approuvée.
  3. Ajoutez le magasin de confiance à la définition du point de terminaison cible ou du serveur cible.

Pour en savoir plus, consultez la page Keystores et Truststores.

Exemple :

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
      <TrustStore>ref://myTrustStoreRef</TrustStore>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

Utiliser une référence à un keystore ou à un Truststore

L'exemple ci-dessous montre comment configurer un TargetEndpoint ou un TargetServer pour est compatible avec le protocole TLS. Lors de la configuration du protocole TLS, vous spécifiez un Truststore et un keystore TargetEndpoint ou TargetServer.

Apigee recommande vivement d'utiliser une référence au keystore et truststore dans la définition TargetEndpoints ou TargetServer. L'avantage d'utiliser une référence est qu'il vous suffit de mettre à jour la référence pour qu'elle pointe vers un autre keystore ou truststore mettre à jour le certificat TLS.

Références aux keystores et aux truststores dans la définition TargetEndpoints ou TargetServer fonctionnent de la même manière que pour les hôtes virtuels.

Convertir un TargetEndpoint ou un TargetServer pour utiliser une référence

Il se peut que vous ayez des définitions TargetEndpoint ou TargetServer existantes qui utilise le nom littéral du keystore et du truststore. Pour convertir le point de terminaison TargetEndpoint ou la définition du serveur cible pour utiliser des références:

  1. Mettez à jour la définition du point de terminaison cible ou du serveur cible pour utiliser une référence.
  2. Redémarrez les processeurs de messages Edge: <ph type="x-smartling-placeholder">
      </ph>
    • Pour les clients de cloud public, contactez l'assistance Apigee Edge pour redémarrer les processeurs de messages.
    • Pour les clients de cloud privé, redémarrez le processeur de message périphérique à la fois.
  3. Vérifiez que votre TargetEndpoint ou TargetServer fonctionne correctement.

Configurer le protocole TLS unidirectionnel vers le backend serveur

Lors de l’utilisation d’une définition TargetEndpoint, configuration d’un accès TLS à sens unique à partir de Edge (client TLS) au serveur backend (serveur TLS) ne nécessite aucune configuration supplémentaire sur Edge. Il est au serveur backend pour configurer correctement TLS.

Il vous suffit de vous assurer que l'élément <URL> de la section La définition de TargetEndpoint fait référence au service de backend par le biais du protocole HTTPS et que vous activez TLS:

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

Si vous utilisez un serveur cible pour définir le service de backend, activez le protocole TLS. dans la définition du serveur cible:

<TargetServer name="target1">
  <Host>mocktarget.apigee.net</Host>
  <Port>443</Port>
  <IsEnabled>true</IsEnabled>
  <SSLInfo>
    <Enabled>true</Enabled>
  </SSLInfo> 
</TargetServer> 

Cependant, si vous souhaitez qu'Edge valide le certificat backend, vous devez créer un Truststore. qui contient le certificat ou la chaîne de certificats backend. Vous spécifiez ensuite le truststore la définition du point de terminaison TargetEndpoint:

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
      <TrustStore>ref://myTrustStoreRef</TrustStore>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

Ou dans la définition TargetServer:

<TargetServer name="target1">
  <Host>mockserver.apigee.net</Host>
  <Port>443</Port>
  <IsEnabled>true</IsEnabled>
  <SSLInfo>
    <Enabled>true</Enabled>
    <TrustStore>ref://myTrustStoreRef</TrustStore>
  </SSLInfo> 
</TargetServer>

Pour configurer le protocole TLS unidirectionnel:

  1. Si vous souhaitez valider le certificat backend, créez un Truststore sur Edge et importez le certificat backend ou la chaîne d'autorité de certification, comme décrit dans Keystores et Truststores : Dans cet exemple, si vous devez créer un Truststore, nommez-le myTrustStore.
  2. Si vous avez créé un Truststore,utilisez l'appel d'API POST suivant pour créer La référence myTrustStoreRef au truststore que vous avez créé ci-dessus:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
      -d '<ResourceReference name="myTrustStoreRef">
        <Refers>myTrustKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
      </ResourceReference>' -u email:password
    
  3. Utilisez l'interface utilisateur de gestion Edge pour mettre à jour la définition TargetEndpoint pour le proxy d'API (ou, si vous définissez le proxy d'API en XML, modifiez les fichiers XML du proxy): <ph type="x-smartling-placeholder">
      </ph>
    1. Connectez-vous à l'interface utilisateur de gestion Edge à l'adresse https://enterprise.apigee.com.
    2. Dans le menu de l'interface utilisateur de gestion Edge, sélectionnez APIs.
    3. Sélectionnez le nom du proxy d'API à mettre à jour.
    4. Sélectionnez l'onglet Développement.
    5. Sous Points de terminaison cibles, sélectionnez par défaut.
    6. Dans la zone de code, modifiez l'élément <HTTPTargetConnection> pour ajoutez l'élément <SSLInfo>. Assurez-vous de spécifier la référence truststore appropriée et définissez <Enabled> sur "true" :
      <TargetEndpoint name="default">
        …
        <HTTPTargetConnection>
          <SSLInfo>
            <Enabled>true</Enabled>
            <TrustStore>ref://myTrustStoreRef</TrustStore>
          </SSLInfo>
          <URL>https://myservice.com</URL>
        </HTTPTargetConnection>
        …
      </TargetEndpoint>
    7. Enregistrez le proxy d'API. Si le proxy d'API a été déployé et que vous l'enregistrez, il est redéployé avec la nouveau paramètre.

Configurer un protocole TLS bidirectionnel avec le backend serveur

Si vous souhaitez utiliser le protocole TLS bidirectionnel entre Edge (client TLS) et le serveur backend (TLS) serveur):

  • Créez un keystore sur Edge et importez le certificat Edge et la clé privée.
  • Si vous souhaitez valider le certificat backend, créez un Truststore sur Edge contenant le de certificat et de la chaîne d'autorité de certification que vous recevez du serveur backend.
  • Mettez à jour le TargetEndpoint de tous les proxys d'API faisant référence au serveur backend pour configurer Accès TLS.

Utiliser l'alias de clé pour spécifier le certificat du keystore

Vous pouvez définir plusieurs certificats, chacun avec son propre alias, dans le même keystore. Par défaut, Edge utilise le premier certificat défini dans le keystore.

Vous pouvez éventuellement configurer Edge pour utiliser le certificat spécifié par la propriété <KeyAlias>. Cela vous permet de définir un keystore unique pour plusieurs certificats, puis sélectionnez celui que vous souhaitez utiliser dans la définition TargetServer. Si Edge ne parvient pas à trouver un certificat avec un alias qui correspond à <KeyAlias>, l'action par défaut est de sélectionner premier certificat dans le keystore.

Les utilisateurs Edge pour Public Cloud doivent contacter l'assistance Apigee Edge pour activer cette fonctionnalité.

Configuration d'un protocole TLS bidirectionnel

Pour configurer le protocole TLS bidirectionnel:

  1. Créez le keystore sur Edge, puis téléchargez le certificat et la clé privée en suivant la procédure ci-après. Keystores et Truststores. Pour cet exemple, créez un keystore nommé myTestKeystore qui utilise un nom d'alias de myKey pour le certificat et la clé privée.
  2. Utilisez l'appel d'API POST suivant pour créer la référence myKeyStoreRef dans le keystore que vous avez créé ci-dessus:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
    -d '<ResourceReference name="myKeyStoreRef">
        <Refers>myTestKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
    </ResourceReference>' -u email:password
    

    La référence spécifie le nom du keystore et le type de référence en tant que KeyStore.

    Utilisez l'appel d'API GET suivant pour afficher la référence :

    curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/myKeyStoreRef /
    -u email:password
    
  3. Si vous souhaitez valider le certificat backend, créez un Truststore sur Edge, puis téléchargez le certificat et l'autorité de certification. comme décrit ici: Keystores et Truststores. Dans cet exemple, si vous devez créer un magasin de confiance, nommez-le myTrustStore.
  4. Si vous avez créé un Truststore,utilisez l'appel d'API POST suivant pour créer La référence myTrustStoreRef au truststore que vous avez créé ci-dessus:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
    -d '<ResourceReference name="myTrustStoreRef">
        <Refers>myTrustKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
    </ResourceReference>' -u email:password
    
  5. Utilisez l'interface utilisateur de gestion Edge pour mettre à jour la définition TargetEndpoint pour le proxy d'API (ou, si vous définissez le proxy d'API en XML, modifiez les fichiers XML du proxy): <ph type="x-smartling-placeholder">
      </ph>
    1. Connectez-vous à l'interface utilisateur de gestion Edge à l'adresse https://enterprise.apigee.com.
    2. Dans le menu de l'interface utilisateur de gestion Edge, sélectionnez APIs.
    3. Sélectionnez le nom du proxy d'API à mettre à jour.
    4. Sélectionnez l'onglet Développement.
    5. Sous Points de terminaison cibles, sélectionnez par défaut.
    6. Dans la zone de code, modifiez l'élément <HTTPTargetConnection> pour ajouter <SSLInfo> . Veillez à spécifier le keystore et l'alias de clé appropriés, et définissez à la fois Les éléments <Enabled> et <ClientAuthEnabled> sur "true" :
      <TargetEndpoint name="default">
        ...
        <HTTPTargetConnection>
          <SSLInfo>
            <Enabled>true</Enabled>
            <ClientAuthEnabled>true</ClientAuthEnabled>
            <KeyStore>ref://myKeyStoreRef</KeyStore>
            <KeyAlias>myKey</KeyAlias>
          </SSLInfo>
          <URL>https://myservice.com</URL>
        </HTTPTargetConnection>
        ...
      </TargetEndpoint>
    7. Enregistrez le proxy d'API. Si le proxy d'API a été déployé et que vous l'enregistrez, il est redéployé avec la nouveau paramètre.

Pour en savoir plus sur les options disponibles dans <TargetEndpoint>, y compris sur l'utilisation de variables pour fournir les valeurs <SSLInfo> TargetEndpoint, consultez la documentation de référence sur la configuration du proxy d'API.

Activer SNI

Edge prend en charge l'utilisation de l'indication du nom du serveur (SNI) des processeurs de messages pour cibler dans Apigee Edge pour les déploiements Cloud et Private Cloud.

Pour Edge pour le cloud privé, afin d'être rétrocompatible avec vos backends cibles existants, Apigee a désactivé l'extension SNI par défaut. Si votre backend cible est configuré pour prendre en charge l'extension SNI, vous pouvez activer cette fonctionnalité. Pour en savoir plus, consultez la section Utiliser SNI avec Edge.