Estás viendo la documentación de Apigee Edge.
Ve 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.
Más información:
- Información acerca de los hosts virtuales
- Cómo configurar hosts virtuales
- Configura TLS
- Almacenes de claves y Truststores
Quién puede crear y modificar hosts virtuales en la nube
La creación y modificación de hosts virtuales está disponible para las cuentas pagadas solo 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 con una cuenta pagada pueden hacer lo siguiente:
- Habilita TLS unidireccional y bidireccional
- Especifica el almacén de claves o 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 que se crearon 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 | Pago | Las cuentas gratuitas 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 modificarlo. |
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 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 permite el acceso con diferentes nombres de dominio. |
URL base | Incluye el protocolo | Cuando definas la URL base del 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 que 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 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 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 la certificación:
Se permiten comodines en el SAN o CN, por ejemplo, Edge también valida que el certificado no haya vencido. |
Compatibilidad con SNI en apps cliente | Todas las apps cliente que acceden al host virtual deben admitir 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 también puedes crear un host virtual en la IU de Edge.
Para crear un host virtual con la IU de Edge, haz lo siguiente:
- Accede a apigee.com/edge.
- Selecciona Administrador > Virtual Hosts.
- Selecciona el entorno, como prod o test.
- Selecciona + Host virtual para crear un host virtual o selecciona el nombre de un host virtual existente para editarlo.
- Consulta la tabla anterior para obtener información detallada sobre cómo propagar los campos del 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.miEmpresa.com. Este es el dominio público que se usa para acceder a tus APIs, como se define en una definición de DNS y un registro CNAME.
- Especifica el número de puerto como 443. Si se omite, el puerto se establece de forma predeterminada en 443.
- Habilita TLS según sea necesario.
El elemento<Enable>
se establece en verdadero para habilitar el TLS unidireccional, y los elementos<KeyStore>
y especifican el almacén de claves y el alias de clave que usa la conexión TLS.
Para habilitar TLS bidireccional, establece<ClientAuthEnabled>
como verdadero y especifica un almacén de confianza mediante el elemento<TrustStore>
. El almacén de confianza contiene el emisor del certificado del cliente y la cadena de AC del certificado, que es obligatoria.
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 mediante 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, 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 modificar el valor de la referencia para modificar 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 router de borde. 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 al almacén de confianza
Debes tener en cuenta la siguiente restricción cuando uses referencias a almacenes de claves y al almacén 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 finalizas TLS en el balanceador de cargas, no puedes usar referencias de almacén de claves y almacén de confianza en los hosts virtuales.
Cómo definir un host virtual para TLS de dos vías
Para habilitar el TLS bidireccional, establece el elemento <ClientAuthEnabled>
como true
y especifica un almacén de confianza con una referencia con el elemento <TrustStore>
. El almacén de confianza contiene el emisor del certificado del cliente y la cadena de AC del certificado, que es obligatoria. El cliente también debe estar configurado correctamente para el TLS bidireccional.
Para crear un host virtual para TLS de dos vías, 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 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 AC del certificado, que es obligatoria.
Cómo definir un host virtual que use el certificado y la clave de prueba gratuita de Apigee
Si tienes una cuenta pagada de perímetro para Cloud y aún no tienes un certificado ni una clave de TLS, puedes crear un host virtual que use el certificado y la clave de Apigee de prueba gratuita. 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 Definir un host virtual para TLS bidireccional.
Un objeto XML que define el host virtual con el certificado y la clave de 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 el TLS de dos vías, 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 Use built-in free trial certificate cuando crees el host virtual para usar el certificado y la clave gratuitos de Apigee:
Crea un host virtual
Usa el siguiente procedimiento para crear el host virtual:
- Crea una entrada de DNS y un registro CNAME para tu dominio de cara al público,
api.myCompany.com
en este ejemplo, que apunta a[org]-[environment].apigee.net
. - Crea y configura un almacén de claves, llamado myTestKeystore en este ejemplo, con el procedimiento que se describe aquí: Cómo crear almacenes de claves y de confianza con la IU de Edge. En este ejemplo, asegúrate de que el almacén de claves use un nombre de alias myKeyAlias para el certificado y la clave privada.
- Sube el certificado y la clave al almacén de claves. Asegúrate de que el nombre de dominio que especifica tu certificado coincida con el alias de host que deseas usar para el host virtual.
-
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 Cómo trabajar con referencias para obtener más información sobre cómo crear y modificar referencias. - 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 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 configurarse correctamente para la 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 con el procedimiento que se describe aquí: Cómo crear almacenes de claves y de confianza con la IU de Edge. 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 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
Modifica un host virtual
Existen dos tareas principales que los clientes pagados de Cloud realizan para modificar un host virtual existente:
- 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 el equipo de Asistencia de Apigee Edge. - 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:
- 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 mediante la IU de Edge. En el almacén de claves nuevo, asegúrate de usar el mismo nombre para el alias de clave que se usó en el almacén de claves existente.
- 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 mediante la IU de Edge.
- Modifica la referencia como se describe en Cómo trabajar con referencias.
Modifica las propiedades de TLS del host virtual
Los clientes pagados pueden usar la API de Actualizar un host virtual para actualizar un host virtual. Esta API te permite configurar todas las propiedades del host virtual que se describen en Referencia de propiedades de 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 que especifica el alias de host no se usa en otra organización ni en otro entorno.
- Eres el propietario del nombre de dominio. Específicamente, Edge verifica que la siguiente información del certificado coincida con el alias de host:
- CN: Nombre común
- SAN: Nombre alternativo del asunto
- Edge valida que el certificado no haya vencido.
Para modificar un host virtual con la API de Edge, haz lo siguiente:
Actualiza el host virtual con la API de Actualiza un host virtual. 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
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 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 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:
- Si es necesario, crea un almacén de claves nuevo y sube un certificado como se describe en Crea almacenes de claves y de confianza con la IU de Edge. Si ya tienes un almacén de claves, puedes configurar una referencia para que apunte a él.
- Crea una nueva referencia al almacén de claves.
- 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.
- Crea una referencia nueva al almacén de confianza.
- Actualiza el host virtual para configurar 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:
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
- Comunícate con el equipo de asistencia de Apigee para reiniciar los routers del perímetro y completar el proceso.