Estás viendo la documentación de Apigee Edge.
Ir a la
documentación de Apigee X. info
Un proxy de API funciona como una asignación de un extremo disponible de forma pública a tu servicio de backend. Un host virtual define la forma en que el proxy de API público se expone a una app. Por ejemplo, el host virtual determina si se puede acceder al proxy de API con TLS. Cuando configuras un proxy de API, edita su definición de ProxyEndpoint para configurar los hosts virtuales que usa.
El TargetEndpoint es el equivalente saliente del ProxyEndpoint. Un TargetEndpoint funciona como un cliente HTTP desde Edge hasta un servicio de backend. Cuando creas un proxy de API, puedes configurarlo para que use cero o más TargetEndpoints.
Obtenga más información:
- Acerca de TLS/SSL
- Usa TLS con Edge
- Acerca de los hosts virtuales
- Almacenes de claves y almacenes de confianza
- Referencia de la configuración del proxy de API
Configura un TargetEndpoint o TargetServer
Para configurar un TargetEndpoint, edita el objeto XML que define el TargetEndpoint. Puedes editar el TargetEndpoint editando el archivo XML que define el TargetEndpoint en tu proxy de API o editándolo en la IU de administración de Edge.
Para usar la IU de administración de Edge para editar el TargetEndpoint, haz lo siguiente:
- Accede a la IU de administración de Edge en https://enterprise.apigee.com.
- Selecciona el nombre del proxy de API que deseas actualizar.
- Selecciona la pestaña Desarrollo.
- En Extremos de destino, selecciona predeterminado.
- En el área de código, aparece la definición de TargetEndpoint, similar a la siguiente:
<TargetEndpoint name="default"> <Description/> <FaultRules/> <Flows/> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> <PostFlow name="PostFlow"> <Request/> <Response/> </PostFlow> <HTTPTargetConnection> <Properties/> <SSLInfo> <Enabled>true</Enabled> <TrustStore>ref://myTrustStoreRef</TrustStore> </SSLInfo> <URL>https://mocktarget.apigee.net</URL> </HTTPTargetConnection> </TargetEndpoint> - Configura un almacén de certificados de confianza como se describe a continuación en Acerca de la configuración de TLS con el backend.
- Realiza los cambios y guarda el proxy. Si se implementó el proxy de API, guardarlo lo volverá a implementar con la configuración nueva.
Ten en cuenta que la definición de TargetEndpoint contiene una propiedad name. Usas el valor de
la name propiedad
para configurar la definición de ProxyEndpoint de un proxy de API para usar el
TargetEndpoint.
Consulta la referencia de configuración de proxy de API para obtener más información.
Los TargetEndpoints se pueden configurar para hacer referencia a un TargetServer, en lugar de la URL de destino explícita. Una configuración de TargetServer separa las URLs de extremos concretas de las opciones de configuración de TargetEndpoint. Los TargetServers se usan para admitir el balanceo de cargas y la conmutación por error en varias instancias de servidor de backend.
A continuación, se muestra un ejemplo de definición de TargetServer:
<TargetServer name="target1"> <Host>mocktarget.apigee.net</Host> <Port>80</Port> <IsEnabled>true</IsEnabled> </TargetServer>
Se hace referencia a un TargetServer por nombre en el <HTTPTargetConnection>
elemento en una definición de TargetEndpoint.
Puedes configurar uno o más TargetServers con nombre, como se muestra a continuación.
<TargetEndpoint name="default">
...
<HTTPTargetConnection>
<LoadBalancer>
<Server name="target1" />
<Server name="target2" />
</LoadBalancer>
<Path>/test</Path>
</HTTPTargetConnection>
...
</TargetEndpoint>Consulta Balanceo de cargas entre servidores de backend para obtener más información.
Acerca de la configuración de TLS con el backend
Antes de configurar el acceso TLS al backend, debes comprender dos puntos importantes:
- De forma predeterminada, Edge no valida el certificado de backend. Debes crear un almacén de confianza para configurar Edge para validar el certificado.
- Usa una referencia para especificar el almacén de claves o el almacén de certificados de confianza que usa Edge.
Ambas consideraciones se describen a continuación.
Define un almacén de certificados de confianza para habilitar la validación de certificados
Cuando se realiza una solicitud TLS a través de un TargetEndpoint o TargetServer, Edge no valida de forma predeterminada el certificado TLS recibido del servidor de backend. Eso significa que Edge no valida lo siguiente:
- El certificado está firmado por una CA de confianza.
- El certificado no venció.
- El certificado presenta un nombre común. Si hay un nombre común, Edge no valida que el nombre común coincida con el nombre de host especificado en la URL.
Para configurar Edge para validar el certificado de backend, debes hacer lo siguiente:
- Crea un almacén de confianza en Edge.
- Sube el certificado o la cadena de certificados del servidor al almacén de confianza. Si el certificado del servidor está firmado por un tercero, deberás subir toda la cadena de certificados, incluido el certificado de CA raíz, al almacén de confianza. No hay CAs de confianza implícita.
- Agrega el almacén de certificados de confianza a la definición de TargetEndpoint o TargetServer.
Consulta Almacenes de claves y almacenes de confianza para obtener más información.
Por ejemplo:
<TargetEndpoint name="default">
…
<HTTPTargetConnection>
<SSLInfo>
<Enabled>true</Enabled>
<TrustStore>ref://myTrustStoreRef</TrustStore>
</SSLInfo>
<URL>https://myservice.com</URL>
</HTTPTargetConnection>
…
</TargetEndpoint>Usa una referencia a un almacén de claves o de confianza
En el siguiente ejemplo, se muestra cómo configurar un TargetEndpoint o TargetServer para admitir TLS. Como parte de la configuración de TLS, especificas un almacén de certificados de confianza y un almacén de claves como parte de una definición de TargetEndpoint o TargetServer.
Apigee recomienda que uses una referencia al almacén de claves y al almacén de confianza en la definición de TargetEndpoints o TargetServer. La ventaja de usar una referencia es que solo debes actualizar la referencia para que apunte a un almacén de claves o almacén de certificados de confianza diferente para actualizar el certificado TLS.
Las referencias a los almacenes de claves y los almacenes de confianza en la definición de TargetEndpoints o TargetServer funcionan de la misma manera que para los hosts virtuales.
Convierte un TargetEndpoint o TargetServer para usar una referencia
Es posible que tengas definiciones de TargetEndpoint o TargetServer existentes que usen el nombre literal del almacén de claves y el almacén de certificados de confianza. Para convertir la definición de TargetEndpoint o TargetServer para usar referencias, haz lo siguiente:
- Actualiza la definición de TargetEndpoint o TargetServer para usar una referencia.
- Reinicia los Message Processors de Edge:
- En el caso de los clientes denube pública, comunícate con la Asistencia de Apigee Edge para reiniciar los Message Processors.
- En el caso de los clientes denube privada, reinicia los Message Processors de Edge de a uno por vez.
- Confirma que tu TargetEndpoint o TargetServer funcione correctamente.
Configura TLS unidireccional en el servidor de backend del servidor
Cuando se usa una definición de TargetEndpoint, la configuración del acceso TLS unidireccional desde Edge (cliente TLS) al servidor de backend (servidor TLS) no requiere ninguna configuración adicional en Edge. Depende del servidor de backend configurar TLS correctamente.
Solo debes asegurarte de que el elemento <URL> en la
definición de TargetEndpoint haga referencia al servicio de backend mediante el protocolo HTTPS y que
habilites TLS:
<TargetEndpoint name="default">
…
<HTTPTargetConnection>
<SSLInfo>
<Enabled>true</Enabled>
</SSLInfo>
<URL>https://myservice.com</URL>
</HTTPTargetConnection>
…
</TargetEndpoint>Si usas un TargetServer para definir el servicio de backend, habilita TLS en la definición de TargetServer:
<TargetServer name="target1">
<Host>mocktarget.apigee.net</Host>
<Port>443</Port>
<IsEnabled>true</IsEnabled>
<SSLInfo>
<Enabled>true</Enabled>
</SSLInfo>
</TargetServer> Sin embargo, si deseas que Edge valide el certificado de backend, debes crear un almacén de certificados de confianza que contenga el certificado o la cadena de certificados de backend. Luego, especifica el almacén de confianza en la definición de TargetEndpoint:
<TargetEndpoint name="default">
…
<HTTPTargetConnection>
<SSLInfo>
<Enabled>true</Enabled>
<TrustStore>ref://myTrustStoreRef</TrustStore>
</SSLInfo>
<URL>https://myservice.com</URL>
</HTTPTargetConnection>
…
</TargetEndpoint>O en la definición de TargetServer:
<TargetServer name="target1">
<Host>mockserver.apigee.net</Host>
<Port>443</Port>
<IsEnabled>true</IsEnabled>
<SSLInfo>
<Enabled>true</Enabled>
<TrustStore>ref://myTrustStoreRef</TrustStore>
</SSLInfo>
</TargetServer>Para configurar TLS unidireccional, haz lo siguiente:
- Si deseas validar el certificado de backend, crea un almacén de certificados de confianza en Edge y sube el certificado o la cadena de CA de backend, como se describe en Almacenes de claves y almacenes de confianza. Para este ejemplo, si debes crear un almacén de certificados de confianza, llámalo myTrustStore.
-
Si creaste un almacén de confianza, usa la siguiente llamada a la API de POST para crear la referencia llamada myTrustStoreRef al almacén de confianza que creaste anteriormente:
curl -X POST -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \ -d '<ResourceReference name="myTrustStoreRef"> <Refers>myTrustKeystore</Refers> <ResourceType>KeyStore</ResourceType> </ResourceReference>' -u email:password - Usa la IU de administración de Edge para actualizar la definición de TargetEndpoint para el proxy de API (o,
si defines el proxy de API en XML, edita los archivos XML del proxy):
- Accede a la IU de administración de Edge en https://enterprise.apigee.com.
- En el menú de la IU de administración de Edge, selecciona APIs.
- Selecciona el nombre del proxy de API que deseas actualizar.
- Selecciona la pestaña Desarrollo.
- En Extremos de destino, selecciona predeterminado.
- En el área de código, edita el elemento
<HTTPTargetConnection>para agregar el elemento<SSLInfo>. Asegúrate de especificar la referencia correcta del almacén de certificados de confianza y establecer<Enabled>como verdadero:<TargetEndpoint name="default"> … <HTTPTargetConnection> <SSLInfo> <Enabled>true</Enabled> <TrustStore>ref://myTrustStoreRef</TrustStore> </SSLInfo> <URL>https://myservice.com</URL> </HTTPTargetConnection> … </TargetEndpoint> - Guarda el proxy de API. Si se implementó el proxy de API, guardarlo lo volverá a implementar con la configuración nueva.
Configura TLS bidireccional en el servidor de backend del servidor
Si deseas admitir TLS bidireccional entre Edge (cliente TLS) y el servidor de backend (servidor TLS), haz lo siguiente:
- Crea un almacén de claves en Edge y sube el certificado y la clave privada de Edge.
- Si deseas validar el certificado de backend, crea un almacén de certificados de confianza en Edge que contenga el certificado y la cadena de CA que recibiste del servidor de backend.
- Actualiza el TargetEndpoint de cualquier proxy de API que haga referencia al servidor de backend para configurar el acceso TLS.
Usa el alias de clave para especificar el certificado del almacén de claves
Puedes definir varios certificados, cada uno con su propio alias, en el mismo almacén de claves. De forma predeterminada, Edge usa el primer certificado definido en el almacén de claves.
De manera opcional, puedes configurar Edge para que use el certificado especificado por la propiedad <KeyAlias>.
Esto te permite definir un solo almacén de claves para varios certificados y, luego,
seleccionar el que deseas usar en la definición de TargetServer. Si Edge no puede encontrar un certificado con un alias
que coincida con <KeyAlias>, usa la acción predeterminada de seleccionar el
primer certificado en el almacén de claves.
Los usuarios de Edge para la nube pública deben comunicarse con la Asistencia de Apigee Edge para habilitar esta función.
Configura TLS bidireccional
Para configurar TLS bidireccional, haz lo siguiente:
- Crea el almacén de claves en Edge y sube el certificado y la clave privada con el procedimiento que se describe aquí: Almacenes de claves y almacenes de confianza. Para este ejemplo, crea un almacén de claves llamado myTestKeystore que use un nombre de alias de myKey para el certificado y la clave privada.
-
Usa la siguiente llamada a la API de POST para crear la referencia llamada myKeyStoreRef al almacén de claves que creaste anteriormente:
curl -X POST -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \ -d '<ResourceReference name="myKeyStoreRef"> <Refers>myTestKeystore</Refers> <ResourceType>KeyStore</ResourceType> </ResourceReference>' -u email:passwordEn la referencia, se especifica el nombre del almacén de claves y el tipo de referencia como
KeyStore.Usa la siguiente llamada a la API de GET para ver la referencia:
curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/myKeyStoreRef / -u email:password - Si deseas validar el certificado de backend, crea un almacén de certificados de confianza en Edge y sube el certificado y la cadena de CA , como se describe aquí: Almacenes de claves y almacenes de confianza. Para este ejemplo, si debes crear un almacén de certificados de confianza, llámalo myTrustStore.
-
Si creaste un almacén de confianza, usa la siguiente llamada a la API de POST para crear la referencia llamada myTrustStoreRef al almacén de confianza que creaste anteriormente:
curl -X POST -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \ -d '<ResourceReference name="myTrustStoreRef"> <Refers>myTrustKeystore</Refers> <ResourceType>KeyStore</ResourceType> </ResourceReference>' -u email:password - Usa la IU de administración de Edge para actualizar la definición de TargetEndpoint para el proxy de API (o,
si defines el proxy de API en XML, edita los archivos XML del proxy):
- Accede a la IU de administración de Edge en https://enterprise.apigee.com.
- En el menú de la IU de administración de Edge, selecciona APIs.
- Selecciona el nombre del proxy de API que deseas actualizar.
- Selecciona la pestaña Desarrollo.
- En Extremos de destino, selecciona predeterminado.
- En el área de código, edita el elemento
<HTTPTargetConnection>para agregar el<SSLInfo>elemento. Asegúrate de especificar el almacén de claves y el alias de clave correctos, y establece los elementos<Enabled>y<ClientAuthEnabled>como verdaderos:<TargetEndpoint name="default"> ... <HTTPTargetConnection> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>true</ClientAuthEnabled> <KeyStore>ref://myKeyStoreRef</KeyStore> <KeyAlias>myKey</KeyAlias> </SSLInfo> <URL>https://myservice.com</URL> </HTTPTargetConnection> ... </TargetEndpoint> - Guarda el proxy de API. Si se implementó el proxy de API, guardarlo lo volverá a implementar con la configuración nueva.
Para obtener más información sobre las opciones disponibles en el <TargetEndpoint>, incluido el uso de variables
para proporcionar valores de TargetEndpoint <SSLInfo>, consulta la referencia de configuración de proxy de API.
Habilita SNI
Edge admite el uso de la Indicación de nombre del servidor (SNI) de Message Processors a extremos de destino en Apigee Edge para Cloud y para implementaciones de nube privada.
En el caso de Edge para la nube privada, para que sea compatible con versiones anteriores con tus backends de destino existentes, Apigee inhabilitó SNI de forma predeterminada. Si tu backend de destino está configurado para admitir SNI, puedes habilitar esta función. Consulta Usa SNI con Edge para obtener más información.