Configura hosts virtuales para la nube

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

Un cliente de Cloud con una cuenta pagada puede crear un host virtual en una organización.

Más información:

Quién puede crear y modificar hosts virtuales en la nube

La creación y modificación de hosts virtuales solo están disponibles para cuentas pagadas en Edge Cloud. El usuario que crea el host virtual debe tener el rol de administrador de la organización o tener una función personalizada con permisos para modificar el host virtual. Los usuarios que tienen otras funciones no tienen autorización para crear hosts virtuales.

Por ejemplo, los clientes que pagan pueden hacer lo siguiente:

  • Habilita la TLS unidireccional y bidireccional
  • Especifica el almacén de claves o almacén de confianza que usa el host virtual

Las cuentas gratuitas y de prueba no pueden crear ni modificar hosts virtuales, y se limitan a los hosts virtuales creados para ellas en el momento del registro de Edge. Para obtener más información sobre los planes de precios de Edge, consulta https://apigee.com/api-management/#/pricing.

Requisitos para configurar un host virtual para la consola de Cloud

En la siguiente tabla, se resumen los requisitos para crear un host virtual:

Categoría Requisito Descripción
Tipo de cuenta Usuario que paga Las cuentas gratuitas y de prueba no pueden crear ni modificar hosts virtuales.
Función del usuario administrador de la organización Solo un administrador de la organización puede crear un host virtual o un usuario con una función personalizada que tenga permisos para modificar un host virtual.
Cantidad de hosts virtuales 20 como máximo

Tienes un límite de 20 hosts virtuales por organización o entorno en la nube.

Nota: No hay límite para la cantidad de hosts virtuales en la nube privada.

La mayoría de las organizaciones y los entornos usan dos hosts virtuales: uno para HTTP y otro para el acceso HTTPS. Es posible que necesites hosts virtuales adicionales si tu organización o entorno permiten el acceso con nombres de dominio diferentes.

URL base Incluye el protocolo Cuando defines la URL base para el host virtual, ya sea en la IU o con la API, debes especificar el protocolo (es decir, "http://" o "https://") como parte de la URL.
Puerto 443

Solo puedes crear un host virtual en el puerto 443.

Ten en cuenta que puedes crear varios hosts virtuales en el puerto 443, siempre que tengan alias de host únicos y todos admitan TLS.

TLS Obligatorio

Solo puedes crear un host virtual que admita TLS mediante HTTPS. Ya debes haber creado un almacén de claves y, opcionalmente, un almacén de confianza, que contenga el certificado y la clave TLS.

Debe tener un certificado firmado por una entidad de confianza, como Symantec o VeriSign. No puedes usar un certificado autofirmado.

Si necesitas acceso HTTP, comunícate con el equipo de asistencia de Apigee Edge.

Protocolo TLS TLS 1.2

Edge in the Cloud solo es compatible con la versión 1.2 de TLS.

Alias de host Único en la organización y el entorno El alias del host no existe para otra combinación de organización y entorno.
Nombre de dominio Propiedad del cliente

Debes ser el propietario del nombre de dominio especificado en el host virtual. Edge comprueba que el nombre de dominio, según lo define el alias del host, coincida con los metadatos en el certificado TLS.

En particular, Edge verifica la siguiente información del certificado:

  • CN: Nombre común
  • SAN: Nombre alternativo del asunto

Se permiten los comodines en el SAN o CN, por ejemplo, *.myco.net.

Edge también valida que el certificado no haya vencido.

Compatibilidad con SNI para aplicaciones cliente Todas las apps cliente que acceden al host virtual deben ser compatibles con la SNI.

Todas las apps requieren compatibilidad con SNI.

Crea un host virtual con un navegador

En la mayoría de los ejemplos de esta sección, se usa la API de Edge para crear o modificar hosts virtuales, pero puedes crear uno en la IU de Edge.

Para crear un host virtual mediante la IU de Edge, haz lo siguiente:

  1. Accede a apigee.com/edge.
  2. Selecciona Administrador > Hosts virtuales.
  3. Selecciona un entorno, como prod o test.
  4. Selecciona + Host virtual para crear un host virtual o selecciona el nombre de un host virtual existente para editarlo.
  5. Consulta la tabla anterior para obtener información detallada sobre cómo propagar los campos de host virtual.

Define un host virtual para TLS unidireccional

Un objeto XML que define el host virtual. Por ejemplo, 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, tú:

  • Especifica el nombre como myTLSVHost. Usa el nombre para hacer referencia al 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 un registro CNAME.
  • Especifica el número de puerto como 443. Si se omite, el puerto se establece en 443 de forma predeterminada.
  • Habilita TLS según sea necesario.

    El elemento <Enable> se configura como verdadero para habilitar la TLS unidireccional, y los elementos <KeyStore> especifican el almacén de claves y el alias de clave que usa la conexión TLS.

    Para habilitar la TLS bidireccional, configura <ClientAuthEnabled> como verdadero y especifica un almacén de confianza con el elemento <TrustStore>. El almacén de confianza contiene el emisor del certificado del cliente y la cadena de CA del certificado, lo cual es necesario.

    Nota: Debido a que Edge era compatible originalmente con SSL, la etiqueta que usas para configurar TLS se llama <SSLInfo>.

Ten en cuenta que hay propiedades adicionales que puedes configurar en el host virtual. Si quieres obtener una referencia para todas las propiedades, consulta Referencia de propiedades de host virtual.

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

Cuando configuras un host virtual para que admita TLS, debes especificar un almacén de claves con una referencia. Una referencia es una variable que contiene el nombre del almacén de claves o del almacén de confianza, en lugar de especificar directamente el nombre del almacén de claves o del almacén de confianza, 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 el valor de la referencia para modificar el almacén de claves que usa el host virtual, generalmente porque el certificado del almacén de claves actual vencerá pronto. Para cambiar el valor de la referencia, no es necesario que reinicies el router perimetral. Consulta Cómo trabajar con referencias para obtener más información sobre cómo crear y modificar 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 finalizas SSL en los routers de Apigee.
  • Si tienes un balanceador de cargas frente a los routers de Apigee y finalizas TLS en el balanceador de cargas, no puedes usar referencias de almacén de claves ni almacén de confianza en hosts virtuales.

Define un host virtual para TLS bidireccional

Para habilitar la 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 CA del certificado, lo cual es necesario. El cliente también debe estar configurado de forma correcta para TLS bidireccional.

Si quieres crear un host virtual para TLS bidireccional, crea un objeto XML que defina el host virtual:

<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 la TLS bidireccional, configura <ClientAuthEnabled> como verdadero.
  • Especifica la referencia al almacén de confianza con el elemento <TrustStore>. El almacén de confianza contiene el emisor del certificado del cliente y la cadena de CA del certificado, lo cual es necesario.

Definición de un host virtual que use el certificado y la clave de la prueba gratuita de Apigee

Si tienes una cuenta pagada de Edge para Cloud y aún no tienes una clave y un certificado de TLS, puedes crear un host virtual que use el certificado y la clave de la prueba gratuita de Apigee. Esto significa que puedes crear el host virtual sin antes crear un almacén de claves.

El certificado de prueba gratuita de Apigee se define para un dominio de *.apigee.net. Por lo tanto, el <HostAlias> del host virtual también debe tener el formato *.apigee.net.

Si realizas una TLS bidireccional, debes establecer el elemento <ClientAuthEnabled> en true y especificar un almacén de confianza mediante una referencia con el elemento <TrustStore>, como se describió anteriormente en Define un host virtual para TLS bidireccional.

Un objeto XML que define el host virtual con el certificado y la clave de la prueba gratuita de Apigee omite los elementos <KeyStore> y <KeyAlias>, y los reemplaza por el elemento <UseBuiltInFreeTrialCert>, como se muestra a continuación:

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>myapi.apigee.net</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>false</ClientAuthEnabled>
    </SSLInfo>
    <UseBuiltInFreeTrialCert>true</UseBuiltInFreeTrialCert>
</VirtualHost>

El valor predeterminado del elemento <UseBuiltInFreeTrialCert> es falso.

Para la TLS bidireccional, define el host virtual de la siguiente manera:

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>myapi.apigee.net</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>true</ClientAuthEnabled>
        <TrustStore>ref://myTestTruststoreRef</TrustStore>
    </SSLInfo>
    <UseBuiltInFreeTrialCert>true</UseBuiltInFreeTrialCert>
</VirtualHost>

En la IU de Edge, selecciona la opción Usar certificado de prueba gratuita integrada cuando crees el host virtual para usar el certificado y la clave gratuitos de Apigee:

Selecciona Usar certificado de prueba gratuita integrada

Crea un host virtual

Usa el siguiente procedimiento para crear el host virtual:

  1. Crea una entrada de DNS y un registro CNAME para tu dominio público, api.myCompany.com en este ejemplo, que apunte a [org]-[environment].apigee.net.
  2. Crea y configura un almacén de claves, llamado myTestKeystore en este ejemplo, mediante el procedimiento que se describe a continuación: Crea almacenes de claves y almacenes de confianza con la IU de Edge. En este ejemplo, asegúrate de que el almacén de claves use un nombre de alias de myKeyAlias para el certificado y la clave privada.
  3. Sube el certificado y la clave al almacén de claves. Asegúrate de que el nombre de dominio que especifica el certificado coincida con el alias del host que quieres usar para el host virtual.
  4. Crea una referencia al almacén de claves mediante la IU o la API de Edge. La referencia especifica el nombre del almacén de claves y el tipo de referencia como KeyStore. Consulta Cómo trabajar con referencias para obtener más información sobre cómo crear y modificar referencias.

  5. Crea el host virtual mediante la API de Create a Virtual Host. Asegúrate de especificar la referencia y el alias de clave correctos del almacén de claves. Si quieres usar la API, usa la siguiente llamada a la API de POST para crear el almacén de claves llamado myTLSVHost:
    curl -X POST -H "Content-Type:application/xml" \
      https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/virtualhosts \
      -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>
      </VirtualHost>' \
      -u orgAdminEmail:password

    Si realizas TLS bidireccional con el cliente, configura <ClientAuthEnabled> como verdadero y especifica el almacén de confianza mediante el elemento <TrustStore>. El cliente debe estar configurado de forma correcta para TLS bidireccional, lo que significa que Edge tiene un almacén de confianza que contiene el emisor del certificado y la cadena de certificados del cliente. Crea el almacén de confianza mediante el procedimiento que se describe a continuación: Crea almacenes de claves y almacenes de confianza con la IU de Edge.

  6. Si tienes proxies de API existentes, agrega el host virtual al elemento <HTTPConnection> en ProxyEndpoint. El host virtual se agrega automáticamente a todos los proxies de API nuevos. Consulta Cómo configurar 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 el registro CNAME del alias del host, puedes acceder al proxy de la 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

Modifica un host virtual

Existen dos tareas principales que realizan los clientes de Cloud que pagan los clientes para modificar un host virtual existente:

  1. Modifica el valor de una referencia a un almacén de claves o almacén de confianza.

    Nota: Una vez que configuras un objeto <KeyStore> o <TrustStore> para usar una referencia, puedes cambiar el valor de la referencia en cualquier momento. Sin embargo, si alguna vez deseas cambiar <KeyStore> o <TrustStore> para usar una referencia diferente, o cambiar <KeyAlias> y usar un alias diferente, debes comunicarte con el equipo de asistencia de Apigee Edge.
  2. Modifica las propiedades de TLS del host virtual.

Cómo modificar el valor de una referencia

Puedes modificar el valor de una referencia para cambiar el almacén de claves o el almacén de confianza que usa un host virtual.

Antes de modificar el valor de la referencia, haz lo siguiente:

  1. Crea un almacén de claves nuevo y sube un certificado y una clave como se describe en Crea almacenes de claves y almacenes de confianza con la IU de Edge. En el almacén de claves nuevo, asegúrate de usar el mismo nombre para el alias de la clave que se usó en el almacén de claves existente.
  2. Si es necesario, crea un almacén de confianza nuevo y sube un certificado como se describe en Crea almacenes de claves y almacenes de confianza con la IU de Edge.
  3. Modifica la referencia como se describe en Trabaja con referencias.

Modifica las propiedades de TLS del host virtual

Los clientes de pago pueden usar la API de Update a Virtual Host para actualizar un host virtual. Esta API te permite configurar todas las propiedades del host virtual que se describen en la Referencia de propiedades del host virtual.

Cuando modificas el host virtual, Edge realiza una validación similar a la que se realiza cuando creas un host virtual. Es decir, en una modificación, Edge valida lo siguiente:

  • El dominio, como lo especifica el alias del host, no se usa en otra organización y entorno.
  • El nombre de dominio te pertenece. En particular, Edge verifica que la siguiente información del certificado coincida con el alias del host:
    • CN: Nombre común
    • SAN: Nombre alternativo del asunto
    • Edge valida que el certificado no haya vencido.

Para modificar un host virtual mediante la API de Edge, realiza lo siguiente:

  1. Actualiza el host virtual mediante la API de Actualiza un host virtual. Cuando usas la API, debes especificar la definición completa del host virtual en el cuerpo de la solicitud, no solo los elementos que deseas cambiar. En este ejemplo, se establece 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

Modifica un host virtual para usar referencias al almacén de claves y al almacén de confianza

Todos los hosts virtuales nuevos para Edge en la nube usan referencia al almacén de claves y al almacén de confianza. Las referencias te permiten cambiar el almacén de claves y el almacén de confianza sin comunicarte con el equipo de Asistencia de Apigee Edge.

Es posible que los hosts virtuales más antiguos en Apigee Edge no estén configurados para usar referencias de almacenes de claves y almacenes de confianza. En este caso, puedes actualizar el host virtual para usar una referencia.

Actualiza un host virtual para usar una referencia

Usa el siguiente procedimiento para actualizar el host virtual:

  1. Si es necesario, crea un almacén de claves nuevo y sube un certificado como se describe en Crea almacenes de claves y almacenes de confianza con la IU de Edge. Si ya tienes un almacén de claves, puedes configurar una referencia para que apunte a él.
  2. Crea una nueva referencia al almacén de claves.
  3. Si es necesario, crea un almacén de confianza nuevo y sube un certificado. Si ya tienes un almacén de confianza, puedes configurar una referencia para que apunte a él.
  4. Crea una nueva referencia al almacén de confianza.
  5. Actualiza el host virtual para configurar el almacén de claves, el alias, el almacén de confianza y cualquier otra propiedad TLS. Esta es la carga útil de la llamada:
    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>
            <OCSPStapling>off</OCSPStapling>
            <SSLInfo>
              <Enabled>true</Enabled>
              <ClientAuthEnabled>true</ClientAuthEnabled>
              <KeyStore>ref://myKeyStore2Way</KeyStore>
              <KeyAlias>keyAlias</KeyAlias>
              <TrustStore>ref://myTrustStore2Way</TrustStore>
              <IgnoreValidationErrors>false</IgnoreValidationErrors>
            </SSLInfo>
          </VirtualHost>' \
        -u orgAdminEmail:pWord
  6. Comunícate con el equipo de asistencia de Apigee para reiniciar los routers perimetrales y completar el proceso.