Configura hosts virtuales para la nube

Estás viendo la documentación de Apigee Edge.
Ir a la documentación de Apigee X.
info

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

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

La creación y modificación de hosts virtuales solo está disponible para las cuentas pagadas en Edge Cloud. El usuario que crea 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 otros roles no tienen autorización para crear hosts virtuales.

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

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

Las cuentas de prueba gratuita 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 nube

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

Categoría Requisito Descripción
Tipo de cuenta Pagado Las cuentas de prueba gratuita y de prueba no pueden crear ni modificar hosts virtuales.
Rol del usuario administrador de la organización Solo un administrador de la organización puede crear un host virtual, o bien un usuario con un rol personalizado 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 en la cantidad de hosts virtuales en la Nube privada.

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

URL base Incluye el protocolo Cuando definas 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 y cuando tengan alias de host únicos y todos admitan TLS.

TLS Obligatorio

Solo puedes crear un host virtual que admita TLS a través de HTTPS. Ya debes haber creado un almacén de claves y, de manera opcional, un almacén de confianza que contenga tu certificado y clave de TLS.

Debes 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 en la nube solo admite la versión 1.2 de TLS.

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

Debes ser propietario del nombre de dominio especificado en el host virtual. Edge verifica que el nombre de dominio, tal como lo define el alias de host, coincida con los metadatos del certificado TLS.

Específicamente, Edge verifica la siguiente información en el certificado:

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

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

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

Compatibilidad con SNI de la app cliente Todas las apps cliente que accedan al host virtual deben admitir SNI.

Todas las apps deben admitir SNI.

Crea un host virtual con un navegador

La mayoría de los ejemplos de esta sección usan la API de Edge para crear o modificar hosts virtuales, pero puedes crear un host virtual en la IU de Edge.

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

  1. Accede a apigee.com/edge.
  2. Selecciona Admin > Virtual Hosts.
  3. Selecciona el 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 completar los campos del host virtual.

Cómo definir un host virtual para TLS unidireccional

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, harás lo siguiente:

  • 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 un registro CNAME y una definición de DNS.
  • 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 establece en verdadero para habilitar 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, establece <ClientAuthEnabled> como verdadero y especifica un almacén de confianza con el elemento <TrustStore>. El almacén de confianza contiene la entidad emisora del certificado del cliente y la cadena de la CA del certificado, lo que es obligatorio.

    Nota: Debido a que Edge originalmente admitía 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. Para obtener una referencia de todas las propiedades, consulta Referencia de propiedades de host virtual.

Cómo decidir 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 cambiar el almacén de claves que usa el host virtual, por lo general, porque el certificado del almacén de claves actual vencerá pronto. Si deseas cambiar el valor de la referencia, no es necesario que reinicies el enrutador de Edge. 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 para el uso de referencias a almacenes de claves y al almacén 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 a almacenes de claves y almacenes de confianza en hosts virtuales si admites SNI y cierras SSL en los routers de Apigee.
  • Si tienes un balanceador de cargas frente a los routers de Apigee y cierras TLS en el balanceador de cargas, no puedes usar referencias a almacenes de claves y almacenes de confianza en hosts virtuales.

Cómo definir un host virtual para TLS bidireccional

Para habilitar TLS bidireccional, establece el elemento <ClientAuthEnabled> en true y especifica un almacén de confianza con una referencia con el elemento <TrustStore>. El almacén de confianza contiene la entidad emisora del certificado del cliente y la cadena de la CA del certificado, lo que es obligatorio. El cliente también debe estar configurado correctamente para TLS bidireccional.

Para 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, harás lo siguiente:

  • Para habilitar TLS bidireccional, configura <ClientAuthEnabled> como verdadero.
  • Especifica la referencia al almacén de confianza con el elemento <TrustStore>. El almacén de confianza contiene la entidad emisora del certificado del cliente y la cadena de la CA del certificado, lo que es obligatorio.

Cómo definir un host virtual que usa el certificado y la clave de prueba gratuita de Apigee

Si tienes una cuenta paga de Edge para Cloud y aún no tienes un certificado y una clave de TLS, puedes crear un host virtual que use el certificado y la clave de prueba gratuitos 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 TLS bidireccional, debes establecer el elemento <ClientAuthEnabled> como true y especificar un almacén de confianza con una referencia con el elemento <TrustStore>, como se describió anteriormente en Cómo definir un host virtual para TLS bidireccional.

Un objeto XML que define el host virtual con el certificado y la clave de prueba gratuitos 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 el 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 el certificado de prueba gratuito integrado cuando crees el host virtual para usar el certificado y la clave gratuitos de Apigee:

Selecciona Usar el certificado de prueba gratuita integrado.

Cómo crear un host virtual

Sigue este 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, con el procedimiento que se describe aquí: 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 el nombre de alias myKeyAlias para el certificado y la clave privada.
  3. Sube tu certificado y clave al almacén de claves. Asegúrate de que el nombre de dominio especificado por tu certificado coincida con el alias de host que deseas usar para el host virtual.
  4. Crea una referencia al almacén de claves con 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 con la API de Create a Virtual Host. Asegúrate de especificar la referencia del almacén de claves y el alias de la clave correctos. Para 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, establece <ClientAuthEnabled> como verdadero y especifica el almacén de confianza con el elemento <TrustStore>. El cliente debe estar configurado correctamente para la TLS bidireccional, lo que significa que Edge tiene un almacén de confianza que contiene la cadena de certificados y el emisor del certificado del cliente. Crea el almacén de confianza con el procedimiento que se describe aquí: Cómo crear 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 el 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 que use el host virtual y crear la entrada DNS y el registro CNAME para el alias de 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

Cómo modificar un host virtual

Los clientes de Cloud pagados realizan dos tareas principales para modificar un host virtual existente:

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

    Nota: Una vez que configures un <KeyStore> o un <TrustStore> para usar una referencia, podrás 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> para usar un alias diferente, debes comunicarte con la 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 nuevo almacén de claves y sube un certificado y una clave como se describe en Cómo crear 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 nuevo almacén de confianza y sube un certificado como se describe en Cómo crear almacenes de claves y almacenes de confianza con la IU de Edge.
  3. Modifica la referencia como se describe en Cómo trabajar con referencias.

Cómo modificar las propiedades de TLS del host virtual

Los clientes que pagan pueden usar la API de Actualizar un host virtual para actualizar un host virtual. Esta API te permite establecer todas las propiedades del host virtual que se describen en 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 especificado por el alias de host no se usa en otra organización ni en otro entorno.
  • Eres propietario del nombre de dominio. Específicamente, Edge verifica que la siguiente información del certificado coincida con el alias del host:
    • CN: Nombre común
    • SAN: Nombre alternativo del sujeto
    • Edge valida que el certificado no haya vencido.

Para modificar un host virtual con la API de Edge, haz lo siguiente:

  1. Actualiza el host virtual con la API de Update a Virtual Host. Cuando uses 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

Cómo modificar 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 referencias 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 de Apigee Edge no estén configurados para usar referencias a almacenes de claves y almacenes de confianza. En este caso, puedes actualizar el host virtual para que use una referencia.

Actualiza un host virtual para que use una referencia

Sigue este 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 Cómo crear 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 referencia nueva al almacén de claves.
  3. Si es necesario, crea un nuevo almacén de confianza y sube un certificado. Si ya tienes un almacén de confianza, puedes configurar una referencia para que apunte a él.
  4. Crea una referencia nueva al almacén de confianza.
  5. Actualiza el host virtual para establecer el almacén de claves, el alias, el almacén de confianza y cualquier otra propiedad de TLS. La carga útil de la llamada es la siguiente:
    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 la Asistencia de Apigee para reiniciar los routers del perímetro y completar el proceso.