Configurer des hôtes virtuels

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

Un client Cloud disposant d'un compte payant et de tous les clients Edge pour Private Cloud peut créer un hôte virtuel dans une organisation. L'utilisateur qui crée l'hôte virtuel doit avoir le rôle d'administrateur de l'organisation ou être un rôle personnalisé disposant des autorisations nécessaires pour modifier un hôte virtuel. Les utilisateurs d'autres rôles n'ont pas accès l'autorisation de créer des hôtes virtuels.

Regardez une présentation vidéo des hôtes virtuels.

Créer un hôte virtuel

Utilisez la procédure de base suivante pour créer l'hôte virtuel. La procédure réelle à utiliser varie selon que vous êtes un client Cloud ou un client de cloud privé. et si vous activez ou non TLS:

  1. Créez une entrée DNS et un enregistrement CNAME pour votre domaine public.
  2. Si vous activez TLS sur l'hôte virtuel:
    1. Créez et configurez un keystore en suivant la procédure décrite ici: Keystores et Truststores.
    2. Importez le certificat et la clé dans le keystore. Vérifiez que le nom de domaine spécifié par vos cert correspond à l'alias d'hôte que vous souhaitez utiliser pour l'hôte virtuel.
    3. Créez une référence au keystore à l'aide de l'interface utilisateur ou de l'API Edge. La référence spécifie le nom du keystore et le type de référence comme KeyStore. Voir Utiliser des références pour en savoir plus sur la création et la modification des références.
    4. Si vous utilisez le protocole TLS bidirectionnel, créez un Truststore, importez le certificat et créer une référence au magasin de confiance. Créez le truststore en suivant la procédure décrite ici: Keystores et Truststores.
  3. Créez l'hôte virtuel à l'aide de la méthode Créez un Virtual Host. Si vous activez TLS, veillez à spécifier la référence keystore appropriée, la référence truststore et l'alias de clé.
  4. Si vous disposez de serveurs proxy d'API existants, ajoutez l'hôte virtuel à ProxyEndpoint. L'hôte virtuel est ajouté automatiquement à tous les nouveaux proxys d'API. Voir Configurez un proxy d'API pour utiliser un hôte virtuel.

Après avoir mis à jour un proxy d'API pour utiliser l'hôte virtuel, et créé l'entrée DNS et le CNAME pour l'alias d'hôte, vous pouvez accéder au proxy d'API comme indiqué ci-dessous:

https://api.myCompany.com/v1/project-base-path/resource-path

Exemple :

https://api.myCompany.com/v1/weather/forecastrss?w=12797282

Créer un hôte virtuel à l'aide de l'API ou de l'interface utilisateur

Vous pouvez créer un hôte virtuel à l'aide de l'API Edge ou de l'interface utilisateur Edge.

La plupart des exemples ci-dessous utilisent l'API Edge. Pour accéder à l'UI afin de créer, modifier et supprimer hôtes virtuels dans l'interface utilisateur Edge:

  1. Connectez-vous à apigee.com/edge

    Edge pour les clients Private Cloud utilisent http://ms-ip:9000 (sur site), où ms-ip est le Adresse IP ou nom DNS du nœud du serveur de gestion.

  2. Sélectionnez Admin > Hôtes virtuels dans la barre de navigation de gauche.
  3. Sélectionnez l'environnement, par exemple prod ou test.
    Le réseau virtuel les hôtes définis pour l'environnement s'affichent.
  4. Sélectionnez + Hôte virtuel pour créer un hôte virtuel ou sélectionnez le nom d'un un hôte virtuel existant pour le modifier.

Créer un hôte virtuel pour HTTP

Les clients Edge pour Private Cloud peuvent créer un hôte virtuel à l'aide de HTTP.

Pour créer un hôte virtuel non compatible avec TLS, créez un objet XML qui définit le hôte virtuel. Par exemple, l'objet XML suivant définit un hôte virtuel qui utilise le protocole protocole:

<VirtualHost name="myVHost">
   <HostAliases>
     <HostAlias>api.myCompany.com</HostAlias>
   </HostAliases>
   <Interfaces/>
   <Port>80</Port>
</VirtualHost>

Dans cette définition, vous:

  • Indiquez myVHost comme nom. Utilisez ce nom comme référence l'hôte virtuel dans un proxy d'API ou dans un appel d'API.
  • Indiquez api.myCompany.com comme alias d'hôte. Il s'agit de la domaine public utilisé pour accéder à vos API, tel que défini par une définition DNS et un CNAME enregistrer.
  • Spécifiez 80 comme numéro de port. En cas d'omission, par défaut le port est défini sur 443.
  • Vous pouvez définir d'autres propriétés dans l'hôte virtuel. Pour en savoir plus sur toutes les propriétés, consultez Documentation de référence sur la propriété d'hôte virtuel

Si vous disposez de proxys d'API existants, ajoutez l'hôte virtuel à l'élément <HTTPConnection> sur le point de terminaison du proxy. L'hôte virtuel est ajouté automatiquement à tous les nouveaux proxys d'API. Consultez la section Configurer un proxy d'API pour utiliser un hôte virtuel. Si vous créez un nouveau proxy d'API qui ne doit pas être accessible sur un hôte virtuel particulier, vous devez modifier le proxy d'API pour supprimer cet hôte virtuel de son ProxyEndpoint.

Vous pouvez ensuite accéder à un proxy d'API via cet hôte virtuel en envoyant une requête à:

http://api.myCompany.com/proxy-base-path/resource-path
https://api.myCompany.com/proxy-base-path/resource-path

Créez l'hôte virtuel à l'aide de la méthode Créez un API Virtual Host:

curl -X POST -H "Content-Type:application/xml" \
  http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts \
  -d '<VirtualHost name="myVHost">
        <HostAliases>
            <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Interfaces/>
        <Port>80</Port>
    </VirtualHost>' \
  -u sysAdminEmail:password

Créer un hôte virtuel pour TLS unidirectionnel

L'objet XML suivant définit un hôte virtuel pour le protocole TLS unidirectionnel:

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>api.myCompany.com</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>false</ClientAuthEnabled>
        <KeyStore>ref://myTestKeystoreRef</KeyStore>
        <KeyAlias>myKeyAlias</KeyAlias>
    </SSLInfo>
</VirtualHost>

Dans cette définition, vous activez le protocole TLS en définissant l'élément <Enable>. sur "true", et utilisez les éléments <KeyStore> et <KeyAliase> pour spécifier le keystore et l'alias de clé utilisés par la connexion TLS.

Pour en savoir plus, consultez la section TLS/SSL. sur l'utilisation du protocole TLS.

Décider comment spécifier le keystore et le nom du truststore dans l'hôte virtuel

Lors de la configuration d'un hôte virtuel pour qu'il prenne en charge TLS, vous spécifiez un keystore à l'aide d'un référence. Une référence est une variable qui contient le nom du keystore ou truststore, au lieu de spécifier directement le nom du keystore ou du truststore, comme indiqué ci-dessous:

    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>false</ClientAuthEnabled>
        <KeyStore>ref://myTestKeystoreRef</KeyStore>
        <KeyAlias>myKeyAlias</KeyAlias>
    </SSLInfo>

L'avantage d'utiliser une référence est que vous pouvez modifier sa valeur keystore utilisé par l'hôte virtuel, généralement parce que le certificat du keystore actuel est arrivant à expiration dans un avenir proche. Modifier la valeur de la référence ne nécessite pas de redémarrer le routeur Edge. Consultez la section Utiliser des références pour en savoir plus en savoir plus sur la création et la modification des références.

Vous ne pouvez utiliser qu'une référence au keystore et au truststore. Vous ne pouvez pas utiliser de référence à l'alias. Lorsque vous modifiez la référence dans un keystore, assurez-vous que le nom d'alias du certificat est identique à celui de l'ancien keystore.

Restrictions concernant l'utilisation de références aux keystores et au truststore

Vous devez tenir compte de la restriction suivante lorsque vous utilisez des références à des keystores et Truststores:

  • Vous ne pouvez utiliser des références keystore et truststore dans des hôtes virtuels que si vous acceptez l'extension SNI et vous terminez SSL sur les routeurs Apigee.
  • Si vous avez un équilibreur de charge devant les routeurs Apigee et que vous arrêtez le protocole TLS sur le vous ne pouvez pas utiliser de références keystore et truststore dans des hôtes virtuels.

Créer un hôte virtuel pour TLS bidirectionnel

Pour activer le protocole TLS bidirectionnel, définissez l'élément <ClientAuthEnabled> sur true, et spécifiez un Truststore en à l'aide d'une référence avec l'élément <TrustStore>. Le Truststore contient l'émetteur du certificat du client et la chaîne d'autorité de certification du certificat, ce qui est obligatoire. Le client doit également être configuré correctement pour le protocole TLS bidirectionnel.

Pour créer un hôte virtuel pour TLS bidirectionnel, créez un objet XML qui définit l'hôte virtuel hôte:

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>api.myCompany.com</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>true</ClientAuthEnabled>
        <KeyStore>ref://myTestKeystoreRef</KeyStore>
        <KeyAlias>myKeyAlias</KeyAlias>
        <TrustStore>ref://myTestTruststoreRef</TrustStore>
    </SSLInfo>
</VirtualHost>

Dans cette définition, vous:

  • Activez le protocole TLS bidirectionnel en définissant <ClientAuthEnabled> sur "true".
  • Spécifiez la référence au truststore à l'aide de l'élément <TrustStore>. Le Truststore contient l'émetteur du certificat du client et la chaîne d'autorité de certification du certificat, ce qui est obligatoire.

Pour en savoir plus, consultez la section TLS/SSL. sur l'utilisation du protocole TLS.

Modifier un hôte virtuel

Un client Cloud disposant d'un compte payant et tous les clients Edge pour Private Cloud peuvent utiliser <ph type="x-smartling-placeholder"></ph> Mettre à jour une API d'hôte virtuel pour mettre à jour un hôte virtuel Cette API vous permet de définir de l'hôte virtuel décrit dans la documentation de référence sur les propriétés d'hôte virtuel.

Mettez à jour l'hôte virtuel à l'aide du Mettre à jour une API Virtual Host Lorsque vous utilisez l'API, vous devez spécifier la définition complète l'hôte virtuel dans le corps de la requête, et pas seulement les éléments à modifier.

Dans cet exemple, vous définissez la valeur de la propriété proxy_read_timeout:

curl -X PUT -H "Content-Type:application/xml" \
    https://api.enterprise.apigee.com/v1/o/org_name/e/env_name/virtualhosts/vhost_name \
    -d '<VirtualHost  name="myTLSVHost">
         <HostAliases>
           <HostAlias>api.myCompany.com</HostAlias>
         </HostAliases>
         <Port>443</Port>
         <SSLInfo>
           <Enabled>true</Enabled>
           <ClientAuthEnabled>false</ClientAuthEnabled>
           <KeyStore>ref://myTestKeystoreRef</KeyStore>
           <KeyAlias>myKeyAlias</KeyAlias>
         </SSLInfo>
         <Properties>
           <Property name="proxy_read_timeout">50</Property>
         </Properties>
     </VirtualHost>' \
    -u orgAdminEmail:password

Supprimer un hôte virtuel

Avant de pouvoir supprimer un hôte virtuel d'un environnement, vous devez mettre à jour tous les proxys d'API qui faire référence à l'hôte virtuel pour supprimer la référence. Voir Configurer un proxy d'API pour utiliser un proxy hôte.

Supprimez l'hôte virtuel à l'aide de la méthode <ph type="x-smartling-placeholder"></ph> Supprimez une API d'hôte virtuel:

curl -X DELETE \
  https://api.enterprise.apigee.com/v1/o/org_name/e/env_name/virtualhosts/vhost_name \
  -u orgAdminEmail:password

Afficher des informations sur un hôte virtuel

Affichez des informations sur les hôtes virtuels définis dans un environnement, comme décrit ci-dessous.

Edge

Pour afficher des informations sur un hôte virtuel à l'aide de l'interface utilisateur Edge:

  1. Connectez-vous à apigee.com/edge.

    Edge pour les clients Private Cloud utilisent http://ms-ip:9000 (sur site), où ms-ip est le Adresse IP ou nom DNS du nœud du serveur de gestion.

  2. Sélectionnez Admin > Virtual Hosts (Hôtes virtuels) dans la barre de navigation de gauche.
  3. Sélectionnez l'environnement, par exemple prod ou test.

    Le réseau virtuel les hôtes définis pour l'environnement. Si l'hôte virtuel est configuré pour utiliser un keystore ou un truststore, cliquez sur Show (Afficher) pour en savoir plus.

Si l'hôte virtuel est configuré pour utiliser TLS/SSL, une icône en forme de cadenas apparaît à côté du nom hôte virtuel. Cela signifie qu'un certificat, une clé et une chaîne de certificats TLS/SSL ont été importés dans Edge et associés à l'hôte virtuel. Pour en savoir plus sur les certificats:

  1. Sélectionnez Admin > Environnement > Keystores TLS dans la barre de navigation de gauche.
  2. Sélectionnez l'environnement (généralement prod ou test).
  3. Développez les keystores pour afficher le certificat.

Classic Edge (cloud privé)

Pour afficher des informations sur un hôte virtuel à l'aide de l'interface utilisateur Classic Edge:

  1. Connectez-vous à http://ms-ip:9000, où ms-ip est le Adresse IP ou nom DNS du nœud du serveur de gestion.
  2. Sélectionnez Admin > Virtual Hosts (Hôtes virtuels) dans la barre de navigation de gauche.
  3. Sélectionnez l'environnement, par exemple prod ou test.
  4. Cliquez sur l'onglet Virtual Hosts (Hôtes virtuels).

    Le réseau virtuel les hôtes définis pour l'environnement. Si l'hôte virtuel est configuré pour utiliser un keystore ou un truststore, cliquez sur Show (Afficher) pour en savoir plus.

    L&#39;onglet Hôtes virtuels affiche des informations sur le nom, le port et
                 alias, etc.

Si l'hôte virtuel est configuré pour utiliser TLS/SSL, une icône en forme de cadenas apparaît à côté du nom hôte virtuel. Cela signifie qu'un certificat, une clé et une chaîne de certificats TLS/SSL ont été importés dans Edge et associés à l'hôte virtuel. Pour en savoir plus sur les certificats:

  1. Sélectionnez Admin > Certificats TLS dans la barre de navigation supérieure.
  2. Sélectionnez l'environnement (généralement prod ou test).
  3. Développez les keystores pour afficher le certificat.

Affichage un hôte virtuel avec l'API Edge

Vous pouvez également utiliser les API Edge pour afficher des informations sur les hôtes virtuels. Pour par exemple, la session List Virtual L'API Hosts renvoie la liste de tous les hôtes virtuels:

curl -X GET -H "accept:application/xml" \
    https://api.enterprise.apigee.com/v1/o/org_name/environments/env_name/virtualhosts \
    -u orgAdminEmail:pWord

orgAdminEmail:pWord correspond au nom d'utilisateur et au mot de passe de l'administrateur de l'organisation, et org_name/env_name spécifient l'organisation et l'environnement contenant l'hôte virtuel. Exemple de réponse :

[
 "default",
 "secure"
]

Pour afficher des informations sur un hôte virtuel spécifique, utilisez la fonction Obtenez l'API Virtual Host:

curl -X GET -H "accept:application/xml" \
    https://api.enterprise.apigee.com/v1/o/org_name/environments/env_name/virtualhosts/vhost_name \
    -u orgAdminEmail:pWord

vhost_name est le nom de l'hôte virtuel. Par exemple, vous pouvez définir vhost_name comme étant "sécurisé". à consultez la configuration de l'hôte virtuel sécurisé par défaut créé par Apigee:

<VirtualHost name="secure">
    <HostAliases>
        <HostAlias>api.myCompany.com</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <Properties/>
    <Interfaces/>
    <RetryOptions/>
    <SSLInfo>
        <ClientAuthEnabled>false</ClientAuthEnabled>
        <Enabled>true</Enabled>
        <KeyAlias>freetrial</KeyAlias>
        <KeyStore>ref://freetrial</KeyStore>
        <IgnoreValidationErrors>false</IgnoreValidationErrors>
    </SSLInfo>
</VirtualHost>
.

Configurer un proxy d'API pour utiliser un proxy hôte

Lorsque vous créez un nouveau proxy d'API, Edge le configure automatiquement pour utiliser toutes les ressources hôtes de l'organisation. Une requête envoyée à un proxy d'API via un hôte virtuel utilise le format suivant:

https://host-alias/proxy-base-path/resource-path

Où :

  • host-alias est généralement le nom DNS de l'hôte virtuel.
  • proxy-base-path est défini lorsque vous créez un proxy d'API et est unique pour chaque proxy d'API.
  • resource-path est le chemin d'accès à une ressource accessible via le proxy d'API.

Contrôler les hôtes virtuels utilisés par un proxy d'API

Dans la configuration XML d'un proxy d'API, vous utilisez la balise virtualhost pour spécifier le nom de l'hôte virtuel associé au proxy d'API:

<HTTPProxyConnection>
  <BasePath>/v1/my/proxy/basepath</BasePath>
  <VirtualHost>secure</VirtualHost>
  <VirtualHost>default</VirtualHost>
</HTTPProxyConnection>

Par exemple, <VirtualHost>secure</VirtualHost> signifie un client peut appeler le proxy d'API en utilisant l'alias d'hôte du réseau "sécurisé" hôte virtuel.

Généralement, vous modifiez les hôtes virtuels associés à un proxy d'API dans les cas suivants:

  • Vous créez un nouvel hôte virtuel et vous disposez de proxys d'API existants. Vous devez modifier les API existantes pour ajouter le nouvel hôte virtuel.
  • Vous créez un proxy d'API qui ne doit pas être accessible sur un hôte virtuel particulier. Vous devez modifier le proxy de l'API pour supprimer cet hôte virtuel de sa définition.

Pour modifier les hôtes virtuels associés à un proxy d'API:

  1. Accédez à l'éditeur de proxy d'API, comme décrit ci-dessous.

    Edge

    Pour accéder à l'éditeur de proxy d'API à l'aide de l'interface utilisateur Edge:

    1. Connectez-vous à apigee.com/edge.

      Edge pour les clients Private Cloud utilisent http://ms-ip:9000 (sur site), où ms-ip est le Adresse IP ou nom DNS du nœud du serveur de gestion.

    2. Sélectionnez Développer > Proxys d'API dans la barre de navigation de gauche.
    3. Sélectionnez le proxy d'API que vous souhaitez modifier dans la liste.

    Classic Edge (cloud privé)

    Pour accéder à l'éditeur de proxy d'API à l'aide de l'interface utilisateur Classic Edge:

    1. Connectez-vous à http://ms-ip:9000, où ms-ip est le Adresse IP ou nom DNS du nœud du serveur de gestion.
    2. Sélectionnez API > Proxys d'API dans la barre de navigation supérieure.
    3. Sélectionnez le proxy d'API que vous souhaitez modifier dans la liste.
  2. Cliquez sur l'onglet Développer :
  3. Sous Points de terminaison du proxy, sélectionnez par défaut.
  4. Dans la zone de code: <ph type="x-smartling-placeholder">
      </ph>
    1. Supprimez tous les éléments <VirtualHost> pour hôtes virtuels non pris en charge par le proxy d'API.
    2. Ajouter un élément <VirtualHost> par le nom du nouvel hôte virtuel. Par exemple, si le nouvel hôte virtuel est nommé MyVirtualHost, ajoutez la balise suivante:
      <HTTPProxyConnection>
        <BasePath>/v1/my/proxy/basepath</BasePath>
        <VirtualHost>default</VirtualHost>
        <VirtualHost>secure</VirtualHost>
        <VirtualHost>MyVirtualHost</VirtualHost>
      </HTTPProxyConnection>
  5. 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 nouvelle .

En définissant l'URL de base affichée par la Interface utilisateur Edge pour un proxy d'API

L'interface utilisateur Edge affiche l'URL d'un proxy d'API en fonction des paramètres de l'hôte virtuel correspondant à l'emplacement où le proxy est déployé. Cet écran peut inclure le numéro de port du routeur l'hôte virtuel.

Dans la plupart des cas, l'URL affichée dans l'interface utilisateur Edge est l'URL correcte pour rendre les fichiers externes de requêtes envoyées au proxy. Toutefois, pour certaines configurations, l'URL affichée est incorrecte. Pour exemple, l'une des configurations suivantes peut empêcher l'affichage de l'URL correspond à l'URL réelle utilisée pour envoyer des requêtes externes au proxy:

  • La terminaison SSL se produit au niveau d'un équilibreur de charge
  • Le mappage de port a lieu entre un équilibreur de charge et des routeurs Apigee.
  • Un équilibreur de charge configuré avec la réécriture des chemins d'accès

Edge prend en charge un attribut sur l'hôte virtuel appelé <BaseUrl> qui permet vous remplacez l'URL affichée par l'interface utilisateur Edge. Voici un exemple illustrant l'objet hôte virtuel avec l'attribut <BaseUrl>. Dans cet exemple, la valeur "http://myCo.com" apparaît dans l'interface utilisateur Edge:

<VirtualHost name="myTLSVHost">
  <HostAliases>
    <HostAlias>api.myCompany.com</HostAlias>
  </HostAliases>
  <BaseUrl>http://myCo.com</BaseUrl>
  <Port>443</Port>
  <SSLInfo>
    <Enabled>true</Enabled>
    <ClientAuthEnabled>false</ClientAuthEnabled>
    <KeyStore>ref://myTestKeystoreRef</KeyStore>
    <KeyAlias>myKeyAlias</KeyAlias>
  </SSLInfo>
</VirtualHost>

Notez que la valeur de <BaseUrl> doit inclure le protocole (par exemple, "http://" ou "https://").

Si <BaseUrl> n'est pas défini, l'URL par défaut affichée par l'interface utilisateur Edge sera sous la forme "api.monentreprise.com", alors que l'alias de l'hôte réel est "http://monentreprise.com".