Opciones para configurar TLS

Estás viendo la documentación de Apigee Edge.
Ve a la documentación de Apigee X.
Información

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

  1. Los clientes de API pueden acceder a los proxies de tu 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.

Estos dos 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 utiliza 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, habilitar la TLS bidireccional requiere que configures 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.

<CommonName>

Si se especifica, un valor con el que se valida el nombre común del certificado de destino. Este valor solo es válido para las configuraciones de TargetEndpoint y TargetServer. No es válida para la configuración de VirtualHost.

Según la configuración predeterminada, el valor especificado coincide exactamente con el nombre común del certificado de destino. Por ejemplo, usar *.myhost.com como valor de <CommonName> solo coincidirá y validará el nombre de host de destino si se especifica el valor exacto *.myhost.com como nombre común en el certificado de destino.

De forma opcional, Apigee puede realizar la coincidencia con comodines mediante el atributo wildcardMatch.

Por ejemplo, un nombre común especificado como abc.myhost.com en un certificado de destino coincidiría y validaría si el elemento <CommonName> se especifica de la siguiente manera:

<CommonName wildcardMatch="true">*.myhost.com</CommonName>

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: No es necesario que te comuniques con el equipo de asistencia de Apigee Edge para cambiar el valor de la referencia.
  • Para clientes de la nube privada: Cambiar el valor de la referencia no requiere que reinicies los componentes de Edge, como routers y procesadores de mensajes.

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 Private Cloud 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 o servidores de destino y te permiten actualizar el almacén de claves o el almacén de confianza como las 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 que pagan Cloud y todos los clientes de la nube privada que configuran 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 el balanceador de cargas, no puedes usar referencias de almacén de claves y almacén de confianza en hosts virtuales.

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

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 al almacén de claves, debes trabajar con la asistencia de Apigee Edge.

  2. Edge para la nube privada

    Sigue estos pasos para convertir el host virtual y que use una referencia:

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

Información sobre el uso del certificado y la clave de la prueba gratuita de Apigee

Si tienes una cuenta pagada de Edge para Cloud y aún no tienes un certificado y una clave 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.

Un objeto XML que define el host virtual mediante el certificado de prueba gratuita y la clave 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 va a actualizar las certificaciones vencidas o por vencer?

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 Cloud y de nube privada:

Nube privada Cloud
Host virtual Control total Control total solo para 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, así como configurar todas las propiedades de un host virtual.

Todos los clientes de Cloud, tanto pagados como de evaluación, tienen control total sobre la configuración de los extremos o servidores de destino. Además, los clientes de Cloud que pagan tienen control total de los hosts virtuales, incluidas las propiedades de 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 repercusiones diferentes 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 Cloud y de 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 el 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 o 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 con uno 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 o 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 el equipo de 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 se requiere actualizar el host virtual ni es necesario reiniciar el router. Sin embargo, las solicitudes a la API fallan hasta que se configuran 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 Message Processor.

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

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

Directo 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 servidor de destino o extremo de destino usa el almacén de confianza, reinicia los procesadores de mensajes.

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

Si un servidor de destino o extremo de destino usa el almacén de confianza, comunícate con el equipo de asistencia de Apigee Edge para reiniciar los procesadores de mensajes.