Opciones para configurar TLS

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

En este documento, se incluye una descripción general de cómo configurar TLS en el perímetro para dos áreas funcionales:

  1. Acceso a los proxies de tu API por parte de los clientes de la API. Usa hosts virtuales en el router perimetral para configurar TLS.
  2. Acceso a tus servicios de backend por el perímetro. Usa extremos y servidores de destino en el procesador de mensajes de Edge para configurar TLS.

Ambos tipos de acceso se muestran a continuación:

Información sobre la configuración de opciones de TLS en un host virtual o servidor o extremo de destino

Un host virtual se puede representar mediante un objeto XML con el siguiente formato:

<VirtualHost name="secure">
    ...
    <SSLInfo> 
        <Enabled>true</Enabled> 
        <ClientAuthEnabled>true</ClientAuthEnabled> 
        <KeyStore>ref://myKeystoreRef</KeyStore> 
        <KeyAlias>myKeyAlias</KeyAlias> 
        <TrustStore>ref://myTruststoreRef</TrustStore> 
        <IgnoreValidationErrors>false</IgnoreValidationErrors>
    </SSLInfo>
</VirtualHost>

El área del host virtual que modificas para configurar TLS se define con la etiqueta <SSLInfo>. Usa la misma etiqueta <SSLInfo> para configurar un extremo o servidor de destino.

En la siguiente tabla, se describen los elementos de configuración de TLS que usa la etiqueta <SSLInfo>:

Elemento Descripción
<Habilitada>

Habilita TLS de un solo sentido entre el perímetro y el cliente de API, o entre el perímetro y el backend de destino.

En el caso de un host virtual, deberás definir un almacén de claves que contenga el certificado y la clave privada.

<ClientAuthEnabled>

Habilita TLS bidireccional entre el perímetro y el cliente de API, o entre el perímetro y el backend de destino.

Por lo general, para habilitar la TLS bidireccional, debe configurar un almacén de confianza en Edge.

<KeyStore> El almacén de claves.
<KeyAlias> El alias especificado cuando subiste un certificado y una clave privada al almacén de claves.
<TrustStore> El almacén de confianza.
<IgnoreValidationErrors>

Si es verdadero, el perímetro ignora los errores del certificado TLS. Es válida cuando se configura TLS para servidores y extremos de destino, y cuando se configuran hosts virtuales que usan TLS bidireccionales. El valor predeterminado es falso.

Cuando se usa con un extremo o servidor de destino, si el sistema de backend usa SNI y muestra un certificado con un nombre distinguido (DN) de tema que no coincide con el nombre de host, no hay forma de ignorar el error y la conexión falla.

Información sobre la configuración de los elementos <KeyStore> y <TrustStore>

En el ejemplo de host virtual anterior, el almacén de claves y el almacén de confianza se especifican con references, en el siguiente formato:

<KeyStore>ref://myKeystoreRef</KeyStore>
<TrustStore>ref://myTruststoreRef</TrustStore>

Apigee recomienda que siempre uses referencias al almacén de claves y al almacén de confianza. 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. En este ejemplo:

  • myKeystoreRef es una referencia que contiene el nombre del almacén de claves. En este ejemplo, el nombre del almacén de claves es myKeystore.
  • myTruststoreRef es una referencia que contiene el nombre del almacén de confianza. En este ejemplo, el nombre del almacén de confianza es myTruststore.

Cuando vence un certificado, deberás actualizar el host virtual o el extremo o el servidor de destino para especificar el almacén de claves o el almacén de confianza que contiene el nuevo certificado. La ventaja de una referencia es que puedes modificar su valor para cambiar el almacén de claves o el almacén de confianza sin tener que modificar el host virtual ni el extremo o el servidor de destino:

  • Para clientes de Cloud: Cambiar el valor de la referencia no requiere que te comuniques con el equipo de asistencia de Apigee Edge.
  • Para clientes de nube privada: No es necesario reiniciar los componentes de Edge, como routers y procesadores de mensajes, para cambiar el valor de la referencia.

Como alternativa, puedes especificar el nombre del almacén de claves y el nombre del almacén de confianza directamente:

<KeyStore>myKeystore</KeyStore>
<TrustStore>myTruststore</TrustStore> 

Si especificas directamente el nombre del almacén de claves o del almacén de confianza, los clientes de Cloud deben comunicarse con la asistencia de Apigee Edge y los clientes de la nube privada deben reiniciar ciertos componentes de Edge para actualizar el certificado.

La tercera opción, solo para los extremos o servidor de destino, es usar variables de flujo:

<KeyStore>{ssl.keystore}</KeyStore>
<TrustStore>{ssl.truststore}</TrustStore> 

Las variables de flujo funcionan para los extremos y los servidores de destino de destino, y te permiten actualizar el almacén de claves o el almacén de confianza como referencias. Sin embargo, no funcionan con hosts virtuales y requieren que pases información sobre el almacén de claves, el alias y el almacén de confianza en cada solicitud.

Restricciones en el uso de referencias a los almacenes de claves y al almacén de confianza

Los clientes de Cloud pagados y todos los clientes de nube privada que configuren TLS deben tener en cuenta la siguiente restricción cuando usen 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 cierras TLS en los routers de Apigee.
  • Si tienes un balanceador de cargas frente a los routers de Apigee y finalizas TLS en él, no podrás usar referencias de almacén de claves y almacén de confianza en hosts virtuales.

Si tu host virtual existente usa un nombre de almacén de claves o almacén de confianza literal

Es posible que los hosts virtuales existentes en 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.

  1. Edge para la nube

    Si quieres cambiar el host virtual para usar una referencia del almacén de claves, debes trabajar con la Asistencia de Apigee Edge.

  2. Edge para la nube privada

    Si quieres convertir el host virtual para usar una referencia, sigue estos pasos:

    1. Actualiza el host virtual para usar una referencia.
    2. Reinicia los routers.
    Si deseas obtener más información, consulta la sección "Modifica un host virtual para usar referencias al almacén de claves y al almacén de confianza" en Configura el acceso TLS a una API para la nube privada.

Acerca del certificado y la clave de la prueba gratuita de Apigee

Si tienes una cuenta de Edge pagada 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 gratuita de Apigee. Esto significa que puedes crear el host virtual sin antes crear un almacén de claves.

Un objeto XML que define el host virtual mediante 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>

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

Consulta Configura hosts virtuales para la nube a fin de obtener más información.

Acerca de la configuración de TLS

Dos factores principales determinan cómo se realiza la configuración de TLS:

  • ¿Eres cliente de Edge Cloud o de nube privada?
  • ¿Cómo actualizarás los certificados vencidos o vencidos?

Opciones de configuración de nube privada y nube

En la siguiente tabla, se muestran las diferentes opciones de configuración para los clientes de servicios en la nube y en la nube privada:

Nube privada Cloud
Host virtual Control total Control total solo para las cuentas pagadas
Extremo oservidor de destino Control total Control total

Los clientes de la nube privada tienen control total sobre la configuración de los hosts virtuales y los extremos o servidores de destino de destino. Ese control incluye la capacidad de crear y borrar hosts virtuales, y de configurar todas las propiedades en un host virtual.

Todos los clientes de Cloud, tanto pagados como evaluados, tienen control total sobre la configuración de los extremos y servidores de destino. Además, los clientes pagados de Cloud tienen control total sobre los hosts virtuales, incluidas las propiedades TLS.

Administra certificados vencidos

Si un certificado TLS vence o si la configuración de tu sistema cambia de modo que el certificado ya no es válido, deberás actualizar el certificado. Cuando configuras TLS para un host virtual o un servidor o extremo de destino, debes decidir cómo realizarás esa actualización antes de realizar cualquier configuración.

Cuando vence un certificado

En el perímetro, almacenas certificados en uno de estos dos lugares:

  • Almacén de claves: contiene el certificado TLS y la clave privada que se usa para identificar la entidad durante el protocolo de enlace TLS.
  • Almacén de confianza: contiene certificados de confianza en un cliente TLS que se usa para validar el certificado de un servidor TLS que se presenta al cliente. Por lo general, estos certificados son autofirmados, firmados por una CA de confianza o certificados utilizados como parte de una TLS bidireccional.

Cuando un certificado de un almacén de claves vence y usas una referencia al almacén de claves, no puedes subir un certificado nuevo al almacén de claves. En su lugar, debes hacer lo siguiente:

  1. Crea un almacén de claves nuevo.
  2. Sube el certificado nuevo al almacén de claves nuevo con el mismo nombre de alias que tiene en el almacén de claves anterior.
  3. Actualiza la referencia en tu host virtual o extremo o servidor de destino para usar el nuevo almacén de claves.

Cuando un certificado de un almacén de confianza vence y usas una referencia al almacén de confianza, puedes hacer lo siguiente:

  1. Crea un nuevo almacén de confianza.
  2. Sube el certificado nuevo al almacén de confianza nuevo. El nombre del alias no es importante para los almacenes de confianza. Nota: Si un certificado es parte de una cadena, debes crear un solo archivo que contenga todos los certificados y subir ese archivo a un solo alias, o subir todos los certificados de la cadena por separado al almacén de confianza mediante un alias diferente para cada certificado.
  3. Actualiza la referencia en el host virtual o extremo o servidor de destino para que use el nuevo almacén de confianza.

Resumen de los métodos para actualizar un certificado vencido

El método que usas para especificar el nombre del almacén de claves y el almacén de confianza en el host virtual o el servidor o extremo de destino determina cómo se realiza la actualización del certificado. Puedes usar:

  • Referencias
  • Nombres directos
  • Variables de flujo

Cada uno de estos métodos tiene diferentes repercusiones en el proceso de actualización, como se describe en la siguiente tabla. Como puedes ver, las referencias proporcionan la mayor flexibilidad para los clientes de la nube y de la nube privada:

Tipo de configuración Cómo actualizar o reemplazar el certificado Nube privada Cloud
Referencia (recomendada) Para un almacén de claves, crea un almacén de claves nuevo con un nombre nuevo y un alias con mismo nombre que el alias anterior.

Para un almacén de confianza, crea un almacén de confianza con un nombre nuevo.

Actualiza la referencia al almacén de claves o de confianza.

No es necesario reiniciar el router ni el procesador de mensajes.

Actualiza la referencia al almacén de claves o de confianza.

No es necesario comunicarse con el equipo de asistencia de Apigee.

Variables de flujo (solo extremo de destino) Para un almacén de claves, crea un almacén de claves nuevo con un nombre nuevo y un alias con el mismo nombre o un nombre nuevo.

Para un almacén de confianza, crea un almacén de confianza con un nombre nuevo.

Pasa la variable de flujo actualizada en cada solicitud con el nombre del almacén de claves, el alias o el almacén de confianza nuevos.

No es necesario reiniciar el router ni el procesador de mensajes.

Pasa la variable de flujo actualizada en cada solicitud con el nombre del almacén de claves, el alias o el almacén de confianza nuevos.

No es necesario comunicarse con el equipo de asistencia de Apigee.

Directo Crea un nuevo almacén de claves, un alias y un almacén de confianza. Actualiza el host virtual y reinicia los routers.

Si un servidor o extremo de destino usa el almacén de confianza, vuelve a implementar el proxy.

En el caso de los hosts virtuales, comunícate con la Asistencia de Apigee Edge para reiniciar los routers.

Si un servidor o extremo de destino usa el almacén de confianza, vuelve a implementar el proxy.

Directo Borra el almacén de claves o el almacén de confianza y vuelve a crearlo con el mismo nombre. No es necesario actualizar el host virtual. No es necesario reiniciar el router. Sin embargo, las solicitudes a la API fallan hasta que se establecen el almacén de claves y el alias nuevos.

Si el almacén de claves se usa para la TLS bidireccional entre Edge y el servicio de backend, reinicia los Message Processor.

No se requiere actualizar el host virtual. Sin embargo, las solicitudes a la API fallan hasta que se establecen el almacén de claves y el alias nuevos.

Si el almacén de claves se usa para la TLS bidireccional entre Edge y el servicio de backend, comunícate con la Asistencia de Apigee Edge para reiniciar los procesadores de mensajes.

Rutas directas Solo para el almacén de confianza, sube un nuevo certificado al almacén de confianza. Si un host virtual usa el almacén de confianza, reinicia los routers.

Si un extremo o servidor de destino usa el almacén de confianza, reinicia los procesadores de mensajes.

En el caso de los hosts virtuales, comunícate con la Asistencia de Apigee Edge para reiniciar los routers perimetrales.

Si un extremo o servidor de destino usa el almacén de confianza, comuníquese con la Asistencia de Apigee Edge para reiniciar los Message Processor.