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. Permite el acceso de los clientes de API a los proxies de tu API. Usa hosts virtuales en el perímetro Router 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 &lt;SSLInfo&gt;:

Elemento Descripción
&lt;Enabled&gt;

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.

&lt;ClientAuthEnabled&gt;

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 TLS bidireccional requiere que configures un almacén de confianza en Edge.

&lt;KeyStore&gt; El almacén de claves.
&lt;KeyAlias&gt; El alias especificado cuando subiste un certificado y una clave privada al almacén de claves.
&lt;TrustStore&gt; El almacén de confianza.
&lt;IgnoreValidationErrors&gt;

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.

&lt;CommonName&gt;

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 son válidos para las configuraciones de VirtualHost.

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

De forma opcional, Apigee puede establecer 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 se validaría. si el <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 los 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 la nube privada: Cambiar el valor de la referencia no requieren que reinicies los componentes de Edge, como los routers y los 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 comunícate con el equipo de 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/servidores de destino y te permiten actualizar el almacén de claves o 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 de la nube pagada y todos los clientes de la nube privada que configuren TLS deben tener en cuenta la siguiente restricción cuando se usan 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 tiene un balanceador de cargas frente a los routers de Apigee y finaliza TLS en balanceador de cargas, 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 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 para almacenes de claves y y almacenes de confianza. En este caso, puedes actualizar el host virtual para usar una referencia.

  1. Edge para la nube

    Si deseas cambiar el host virtual para usar una referencia al almacén de claves con el que debes trabajar Asistencia de Apigee Edge.

  2. Edge para la nube privada

    Para convertir el host virtual y usar una referencia, haz lo siguiente:

    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 TLS a un para la nube privada y obtén más información.

Acerca del uso del 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 TLS, puedes crear un host virtual que usa 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 con el certificado y la clave de prueba gratuita de Apigee omite la los elementos <KeyStore> y <KeyAlias>, y los reemplaza por <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 Cloud. para obtener más información.

Acerca de la configuración de TLS

Hay dos factores principales que determinan cómo se realiza la configuración de TLS:

  • ¿Eres cliente de una nube perimetral o de nube privada?
  • ¿Cómo vas a actualizar los certificados vencidos o que vencerán pronto?

Opciones de configuración de nube privada y nube

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

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 extremos/servidores de destino. Ese control incluye la capacidad de crear y borrar instancias y configurar todas las propiedades en un host virtual.

Todos los clientes de Cloud, tanto pagos como de evaluación, tienen control total sobre la configuración de extremos/servidores de destino. Además, los clientes pagados de Cloud tienen control total sobre virtuales de Compute Engine, 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 documento vencido certificado

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 el siguiente tabla. Como puedes ver, las referencias proporcionan la mayor flexibilidad tanto para Cloud como para Clientes 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 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 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 con 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 nuevo almacén de claves, alias o almacén de confianza.

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

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

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 reiniciar el router. Sin embargo, las solicitudes a la API fallan hasta que se configuren el nuevo almacén de claves y alias.

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

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

Si el almacén de claves se usa para 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 extremo o servidor de destino usa el almacén de confianza, reinicia el mensaje. Procesadores.

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

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