Configura hosts virtuales

Estás viendo la documentación de Apigee Edge.
Ve a la Documentación de Apigee X.
información

Un cliente de Cloud con una cuenta pagada y todas las instancias de Edge para los clientes de la nube privada pueden crear un host virtual en una organización. El usuario crear el host virtual debe tener el rol de administrador de la organización o un rol personalizado con permisos para modificar un host virtual. Los usuarios con otras funciones no tienen autorización para crear hosts virtuales.

Mira un video de introducción a los hosts virtuales.

Crea un host virtual

Usa el siguiente procedimiento básico para crear el host virtual. El procedimiento real que usas depende de si eres un cliente de la nube o de una nube privada. y si habilitas TLS:

  1. Crea una entrada DNS y un registro CNAME para tu dominio público.
  2. Si habilitas TLS en el host virtual, ten en cuenta lo siguiente:
    1. Crea y configura un almacén de claves con el procedimiento que se describe a continuación: almacenes de claves y almacenes de confianza.
    2. Sube el certificado y la clave al almacén de claves. Asegúrate de que el nombre de dominio que especifique tu coincide con el alias del host que quieres usar para el host virtual.
    3. Crea una referencia al almacén de claves mediante la API o IU de Edge. La referencia especifica el nombre del almacén de claves y el tipo de referencia como KeyStore. Consulta Trabaja con referencias para más sobre la creación y modificación de referencias.
    4. Si ejecutas TLS bidireccional, crea un almacén de confianza, sube el certificado y crear una referencia al almacén de confianza. Crea el almacén de confianza con el procedimiento descrito aquí: almacenes de claves y almacenes de confianza.
  3. Crea el host virtual con el Crea un API de Virtual Host. Si habilitas TLS, asegúrate de especificar la referencia correcta del almacén de claves. la referencia de almacén de confianza y el alias de clave.
  4. Si tienes proxies de API existentes, agrega el host virtual al ProxyEndpoint. El host virtual se agrega automáticamente a todos los proxies de API nuevos. Consulta Configura un proxy de API para usar un host virtual.

Después de actualizar un proxy de API para usar el host virtual y crear la entrada de DNS y CNAME para el alias del host, puedes acceder al proxy de API como se muestra a continuación:

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

Por ejemplo:

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

Crea un host virtual con la API o la IU

Puedes crear un host virtual con la API o la IU de Edge.

En la mayoría de los siguientes ejemplos, se usa la API de Edge. Acceder a la IU para crear, modificar y borrar Hosts virtuales en la IU de Edge:

  1. Accede a apigee.com/edge.

    Edge para la nube privada usa http://ms-ip:9000 (local), en el que ms-ip es el Dirección IP o nombre de DNS del nodo del servidor de administración.

  2. Selecciona Admin > Virtual Hosts en la barra de navegación de la izquierda.
  3. Selecciona el entorno, como prod o test.
    La nube virtual los hosts definidos para el entorno.
  4. Selecciona + Host virtual para crear un host virtual o selecciona el nombre de un un host virtual existente para editarlo.

Crea un host virtual para HTTP

Los clientes de Edge para la nube privada pueden crear un host virtual con HTTP.

Para crear un host virtual que no admita TLS, crea un objeto XML que defina la un host virtual. Por ejemplo, el siguiente objeto XML define un host virtual que usa el protocolo protocolo:

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

En esta definición, tú:

  • Especifica el nombre como myVHost. Usa el nombre como referencia el host virtual en un proxy de API o en una llamada a la API.
  • Especifica el alias de host como api.myCompany.com. Este es el dominio público que se usa para acceder a tus APIs, según lo define una definición de DNS y CNAME registro.
  • Especifica el número de puerto como 80. Si se omite, de forma predeterminada el puerto está configurado en 443.
  • Existen propiedades adicionales que se pueden configurar en el host virtual. Para obtener una referencia para todas las propiedades, consulta Referencia de propiedades de host virtual.

Si tienes proxies de API existentes, agrega el host virtual al elemento <HTTPConnection>. en el extremo del proxy. El host virtual se agrega automáticamente a todos los proxies de API nuevos. Consulta Configura un proxy de API para que utilice un host virtual. Si crea un nuevo proxy de API al que no debería ser accesible en un host virtual en particular, debe editar el proxy de API para quitar ese host virtual de su ProxyEndpoint.

Luego, puedes acceder a un proxy de API a través de este host virtual mediante una solicitud a:

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

Crea el host virtual con el Crea un API de 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

Crea un host virtual para TLS unidireccional

El siguiente objeto XML define un host virtual para TLS unidireccional:

<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>

En esta definición, se habilita TLS mediante la configuración del elemento <Enable> como verdadero y usar los elementos <KeyStore> y <KeyAliase> para especificar el almacén de claves y el alias de clave que usa la conexión TLS.

Consulta TLS/SSL para obtener más información información sobre el uso de TLS.

Decide cómo especificar el nombre de almacén de claves y almacén de confianza en el host virtual

Al configurar un host virtual para que admita TLS, debes especificar un almacén de claves con un referencia. Una referencia es una variable que contiene el nombre del almacén de claves o Truststore, en lugar de especificar el almacén de claves o el nombre del almacén de confianza directamente, como se muestra a continuación:

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

La ventaja de usar una referencia es que puedes cambiar su valor para que cambie el almacén de claves que usa el host virtual, por lo general, porque el certificado del almacén de claves actual se que vencerá próximamente. Cambiar el valor de la referencia no requiere que reinicies el router perimetral. Consulta Trabaja con referencias para obtener más sobre la creación y modificación de referencias.

Solo puedes usar una referencia al almacén de claves y al almacén de confianza; no puedes usar una referencia al alias. Cuando cambies la referencia a un almacén de claves, asegúrate de que el nombre de alias del certificado sea el mismo que en el almacén de claves anterior.

Restricciones en el uso de referencias a almacenes de claves y almacenes de confianza

Debes tener en cuenta la siguiente restricción cuando uses referencias a almacenes de claves y almacenes de confianza:

  • Solo puedes usar referencias de almacén de claves y almacén de confianza en hosts virtuales si admites SNI y finaliza SSL en los routers de Apigee.
  • Si tiene un balanceador de cargas frente a los routers de Apigee y finaliza TLS en balanceador de cargas, no podrás usar referencias de almacén de claves y almacén de confianza en hosts virtuales.

Crea un host virtual para TLS bidireccional

Para habilitar TLS bidireccional, establece el elemento <ClientAuthEnabled> en true y especifica un almacén de confianza Mediante una referencia con el elemento <TrustStore>. El almacén de confianza contiene el emisor del certificado del cliente y la cadena de la AC del certificado, lo cual es obligatorio. El cliente también deben configurarse correctamente para TLS bidireccional.

Para crear un host virtual para TLS bidireccional, crea un objeto XML que defina la host:

<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>

En esta definición, tú:

  • Para habilitar TLS bidireccional, establece <ClientAuthEnabled> como verdadero.
  • Especifica la referencia al almacén de confianza mediante el elemento <TrustStore>. El almacén de confianza contiene el emisor del certificado del cliente y la cadena de la AC del certificado, lo cual es obligatorio.

Consulta TLS/SSL para obtener más información información sobre el uso de TLS.

Modifica un host virtual

Un cliente de Cloud con una cuenta pagada y todos los clientes de Edge para la nube privada puede usar la Actualiza una API de Virtual Host para actualizar un host virtual. Esta API te permite configurar todos los Propiedades del host virtual que se describen en Referencia de propiedades de host virtual

Actualiza el host virtual a través de la Actualiza una API de Virtual Host. Cuando uses la API, debes especificar la definición completa de el host virtual en el cuerpo de la solicitud, no solo los elementos que quieras cambiar.

En este ejemplo, configuras el valor de la propiedad 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

Borra un host virtual

Antes de borrar un host virtual de un entorno, debes actualizar los proxies de API que hacer referencia al host virtual para quitar la referencia. Consulta Configurar un proxy de API para que utilice una conexión host.

Borra el host virtual con el Borra una API de Virtual Host:

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

Ver información sobre un host virtual

Visualiza información sobre los hosts virtuales definidos en un entorno, como se describe a continuación.

Edge

Para ver información sobre un host virtual con la IU de Edge, sigue estos pasos:

  1. Accede a apigee.com/edge.

    Edge para la nube privada usa http://ms-ip:9000 (local), en el que ms-ip es el Dirección IP o nombre de DNS del nodo del servidor de administración.

  2. Selecciona Administrador > Virtual Hosts en la barra de navegación de la izquierda.
  3. Selecciona el entorno, como prod o test.

    La nube virtual los hosts definidos para el entorno. Si el host virtual está configurado para usar un almacén de claves o un almacén de confianza, Haz clic en Mostrar para obtener más información.

Si el host virtual está configurado para usar TLS/SSL, aparece un ícono de bloqueo junto al nombre del un host virtual. Esto significa que se cargó un certificado, una clave y una cadena de certificados TLS/SSL en Edge y asociado con el host virtual Para ver información sobre los servicios certificados:

  1. Selecciona Administrador > Entorno > Almacenes de claves TLS en la barra de navegación izquierda.
  2. Selecciona el entorno (por lo general, prod o test).
  3. Expande los almacenes de claves para ver el certificado.

Classic Edge (nube privada)

Para ver información sobre un host virtual con la IU clásica de Edge, sigue estos pasos:

  1. Accede a http://ms-ip:9000, donde ms-ip es la dirección IP o el nombre de DNS del nodo del servidor de administración.
  2. Selecciona Administrador > Virtual Hosts en la barra de navegación de la izquierda.
  3. Selecciona el entorno, como prod o test.
  4. Haz clic en la pestaña Virtual Hosts.

    La nube virtual los hosts definidos para el entorno. Si el host virtual está configurado para usar un almacén de claves o un almacén de confianza, Haz clic en Mostrar para obtener más información.

    La pestaña Virtual Hosts muestra información sobre el nombre, el puerto y
                 alias y más.

Si el host virtual está configurado para usar TLS/SSL, aparece un ícono de bloqueo junto al nombre del un host virtual. Esto significa que se cargó un certificado, una clave y una cadena de certificados TLS/SSL en Edge y asociado con el host virtual Para ver información sobre los servicios certificados:

  1. Selecciona Administrador > Certificados TLS en la barra de navegación superior.
  2. Selecciona el entorno (por lo general, prod o test).
  3. Expande los almacenes de claves para ver el certificado.

Visualización un host virtual con la API de Edge

También puedes usar las APIs de Edge para ver información sobre los hosts virtuales. Para ejemplo, el directorio List Virtual La API de Hosts muestra una lista de todos los hosts virtuales:

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

Donde orgAdminEmail:pWord es el nombre de usuario y la contraseña del administrador de la organización. org_name de env_name especifica la la organización y el entorno que contiene el host virtual. Respuesta de muestra:

[
 "default",
 "secure"
]

Para ver información sobre un host virtual específico, utiliza el API de Get 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

Donde vhost_name es el nombre de el host virtual. Por ejemplo, puedes especificar el vhost_name como "seguro". a ver la configuración del host virtual seguro predeterminado que crea 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>

Configurar un proxy de API para usar una conexión organizador

Cuando creas un nuevo proxy de API, Edge lo configura automáticamente para usar todas las instancias los hosts de la organización. Una solicitud a un proxy de API a través de un host virtual usa la siguiente forma:

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

Aquí:

  • host-alias suele ser el nombre de DNS del host virtual.
  • proxy-base-path se define cuando creas un proxy de API y es único para cada proxy de API.
  • resource-path es la ruta a un recurso al que se puede acceder a través del proxy de API.

Controla los hosts virtuales que usa un proxy de API

En la configuración XML de un proxy de API, debes usar la etiqueta virtualhost para especificar la name del host virtual asociado con el proxy de API:

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

Por ejemplo, <VirtualHost>secure</VirtualHost> significa un cliente puede llamar al proxy de API con el alias del host de la red un host virtual.

Normalmente, modificas los hosts virtuales asociados con un proxy de API en las siguientes situaciones:

  • Crearás un host virtual nuevo y tendrás proxies de API existentes. Debes editar todas las APIs existentes para agregar el nuevo host virtual.
  • Creará un nuevo proxy de API al que no se debería poder acceder a través de un host virtual en particular. Debes editar el proxy de API para quitar ese host virtual de su definición.

Para modificar los hosts virtuales asociados con un proxy de API, sigue estos pasos:

  1. Acceda al editor de proxy de API como se describe a continuación.

    Edge

    Para acceder al editor de proxy de API con la IU de Edge, sigue estos pasos:

    1. Accede a apigee.com/edge.

      Edge para la nube privada usa http://ms-ip:9000 (local), en el que ms-ip es el Dirección IP o nombre de DNS del nodo del servidor de administración.

    2. Selecciona Desarrollo > Proxies de API en la barra de navegación izquierda.
    3. Selecciona el proxy de API que deseas editar en la lista.

    Classic Edge (nube privada)

    Para acceder al editor de proxy de API con la IU clásica de Edge, sigue estos pasos:

    1. Accede a http://ms-ip:9000, donde ms-ip es la dirección IP o el nombre de DNS del nodo del servidor de administración.
    2. Selecciona APIs > Proxies de API en la barra de navegación superior.
    3. Selecciona el proxy de API que deseas editar en la lista.
  2. Haz clic en la pestaña Desarrollar:
  3. En Extremos del proxy, selecciona predeterminado.
  4. En el área de código, haz lo siguiente:
    1. Quita los elementos <VirtualHost> de los hosts virtuales no son compatibles con el proxy de API.
    2. Agrega un nuevo elemento <VirtualHost> por el nombre del host virtual nuevo. Por ejemplo, si el nuevo host virtual se llama MyVirtualHost, agrega la siguiente etiqueta:
      <HTTPProxyConnection>
        <BasePath>/v1/my/proxy/basepath</BasePath>
        <VirtualHost>default</VirtualHost>
        <VirtualHost>secure</VirtualHost>
        <VirtualHost>MyVirtualHost</VirtualHost>
      </HTTPProxyConnection>
  5. Guarda el proxy de API. Si se implementó el proxy de API, guardarlo vuelve a implementarlo con el nuevo del lugar.

Configurar la URL base que muestra el IU de Edge para un proxy de API

La IU de Edge muestra la URL de un proxy de API según la configuración del host virtual. que corresponde al lugar en el que se implementa el proxy. Esta pantalla puede incluir el número de puerto del router el host virtual.

En la mayoría de los casos, la URL que se muestra en la IU de Edge es la URL correcta para hacer que las solicitudes al proxy. Sin embargo, para algunas configuraciones, la URL que se muestra no es correcta. Para ejemplo, cualquiera de las siguientes configuraciones puede hacer que la URL que se muestra no corresponden a la URL real que se usó para realizar solicitudes externas al proxy:

  • La terminación SSL ocurre en un balanceador de cargas
  • La asignación de puertos se produce entre un balanceador de cargas y los routers de Apigee
  • Un balanceador de cargas configurado con reescritura de rutas de acceso

Edge admite un atributo en el host virtual llamado <BaseUrl> que permite anulas la URL que muestra la IU de Edge. Este es un ejemplo que muestra el objeto de host virtual con el atributo <BaseUrl>. En este ejemplo, el valor “http://myCo.com” en la IU de 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>

Ten en cuenta que el valor de <BaseUrl> debe incluir el protocolo (es decir, "http://" o “https://”).

Si no estableces <BaseUrl>, la URL predeterminada que renderiza la IU de Edge aparecerán como "api.myCompany.com", mientras que el alias real del host es "http://myCo.com".