Opciones para configurar TLS

Esta página se aplica a Apigee y Apigee Hybrid.

Consulta la documentación de Apigee Edge.

En esta sección, se muestra cómo configurar TLS para el tráfico de un proxy a un destino.

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

Un destino puede representarse con un objeto XML como el que se muestra a continuación:

<HTTPTargetConnection>
    <Properties/>
    <URL>https:myTargetAddress</URL>
    <SSLInfo>
        <Enabled>true</Enabled>
        <Enforce>true</Enforce>
        <ClientAuthEnabled>true</ClientAuthEnabled>
        <KeyStore>ref://myKeystoreRef</KeyStore>
        <KeyAlias>myKeyAlias</KeyAlias>
        <TrustStore>ref://myTruststoreRef</TrustStore>
        <IgnoreValidationErrors>false</IgnoreValidationErrors>
        <Protocols>myProtocols</Protocols>
        <Ciphers>myCipher</Ciphers>
    </SSLInfo>
</HTTPTargetConnection>

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

Para obtener información sobre los elementos secundarios de <SSLInfo>, consulta Configuración de TargetEndpoint de TLS/SSL.

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

Elemento Descripción
<Enabled> El bloque <SSLInfo> se puede usar para TLS/SSL unidireccional y bidireccional.

Si se establece en true, <Enabled> especifica que se debe usar el bloque <SSLInfo>. Cuando se establece en false, se ignora el bloque <SSLInfo>.

El valor predeterminado de <Enabled> es true si <URL> especifica el protocolo HTTPS, y false si <URL> especifica HTTP.

<Enforce>

Aplica un SSL estricto entre Apigee y el backend de destino.

Si se establece en true, las conexiones fallarán para los destinos con certificados no válidos, certificados vencidos, certificados autofirmados, certificados con una discrepancia de nombres de host y certificados con una raíz no confiable. Se muestra un código de error de 4xx o 5xx.

Si no se establece o se establece en false, el resultado de las conexiones a backends de destino con certificados problemáticos depende de la configuración de <IgnoreValidationErrors> (consulta a continuación). Una respuesta exitosa (2xx) puede ocurrir en ciertas condiciones, si <IgnoreValidationErrors> se configura como true.

<ClientAuthEnabled>

Habilita TLS bidireccional (también conocida como TLS mutua o mTLS) entre Apigee y el cliente de API, o entre Apigee y el backend de destino.

Por lo general, la habilitación de TLS bidireccional requiere que configures un almacén de confianza en el perímetro y un almacén de confianza.

<KeyStore> Un almacén de claves que contiene claves privadas usadas para la autenticación de clientes salientes
<KeyAlias> El alias especificado cuando subiste un certificado y una clave privada al almacén de claves.
<TrustStore> Un almacén de claves que contiene certificados de servidor de confianza.
<IgnoreValidationErrors>

Indica si los errores de validación se ignoran. Si el sistema de backend usa SNI y muestra un certificado con un nombre distinguido (DN) del asunto que no coincide con el nombre de host, no hay manera de ignorar el error, y la conexión falla.

Nota: Si <Enforce> se establece en true, se ignora el valor de <IgnoreValidationErrors>.

<Ciphers>

Algoritmos de cifrado admitidos para TLS/SSL saliente. Si no se especifican algoritmos de cifrado, se permitirán todos los algoritmos de cifrado disponibles para la JVM.

Para restringir los algoritmos de cifrado, agrega los siguientes elementos que enumeran los algoritmos de cifrado admitidos:

<Ciphers>
 <Cipher>TLS_RSA_WITH_3DES_EDE_CBC_SHA</Cipher>    
 <Cipher>TLS_RSA_WITH_DES_CBC_SHA</Cipher>
</Ciphers>
<Protocols>

Protocolos admitidos para TLS/SSL de salida. Si no se especifican protocolos, se permitirán todos los protocolos disponibles para la JVM.

Para restringir los protocolos, especifícalos de forma explícita. Por ejemplo, para permitir solo TLS v1.2 o TLS v1.3:

<Protocols>
 <Protocol>TLSv1.2</Protocol>
 <Protocol>TLSv1.3</Protocol>
</Protocols>

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

En el ejemplo anterior, el almacén de claves y el almacén de confianza se especifican con referencias, con 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, debes actualizar el extremo o el servidor de destino para especificar el almacén de claves o el almacén de confianza que contiene el certificado nuevo. 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 extremo o el servidor de destino:

Si deseas cambiar el valor de la referencia, no es necesario que te comuniques con el equipo de Atención al cliente de Google Cloud.

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 el nombre del almacén de claves o del almacén de confianza directamente, debes comunicarte con Atención al cliente de Google Cloud.

La tercera opción es usar variables de flujo:

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

Las variables de flujo te permiten actualizar el almacén de claves o el almacén de confianza como referencias. Si deseas obtener más información, consulta Usa variables de flujo para configurar valores TLS/SSL de forma dinámica.

Acerca de la configuración de TLS

Todos los clientes de Apigee, tanto los pagos como los de evaluación, tienen control total sobre la configuración de los servidores y extremos de destino. Además, los clientes pagos de Apigee tienen control total sobre 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 extremo o servidor de destino, debes decidir cómo realizar esa actualización antes de establecer cualquier configuración.

Cuando vence un certificado

En Apigee, almacenas certificados en uno de estos dos lugares:

  • Keystore: 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 AC de confianza o usados como parte de una TLS bidireccional (también conocida como TLS o mTLS mutua).

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 el 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 extremo o servidor de destino para usar 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 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:

Tipo de configuración Cómo actualizar o reemplazar el certificado Uso
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 comunicarse con el equipo de asistencia de Apigee.

Variable de flujo 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 comunicarse con el equipo de asistencia de Apigee.

Directo Crea un nuevo almacén de claves, un alias y un 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. Las solicitudes a la API fallarán hasta que el nuevo almacén de claves y alias esté configurado.

Si el almacén de claves se usa para la TLS bidireccional (también conocida como TLS mutua o mTLS) entre Apigee y el servicio de backend, comunícate con el equipo de Atención al cliente de Cloud para reiniciar los Message Processors.

Directo Solo para el almacén de confianza, sube un nuevo certificado al almacén de confianza. Comunícate con Atención al cliente de Google Cloud para reiniciar los Message Processors.