Configura TLS 1.3 para el tráfico con dirección sur

En esta página, se explica cómo configurar TLS 1.3 en Apigee Message Processors para el tráfico hacia el sur (tráfico entre Message Processor y el servidor de backend).

Para obtener más información sobre la función TLS 1.3 en Java, consulta las Notas de la versión de actualización del JDK 8u261.

El procedimiento para habilitar TLS 1.3 depende de la versión de Java que uses. Consulta Verifica la versión de Java en un Message Processor a continuación para encontrar la versión de Java instalada en Message Processor.

Versiones de TLS v1.3 y Java

La función TLS 1.3 se introdujo en las siguientes versiones de Java:

  • Oracle JDK 8u261
  • OpenJDK 8u272

En las siguientes versiones de Java, la función TLS v1.3 existe, pero no está habilitada de forma predeterminada en los roles de cliente:

  • Oracle JDK 8u261 o posterior, pero menor que Oracle JDK 8u341
  • OpenJDK 8u272 o posterior, pero menos que OpenJDK 8u352

Si usas una de estas versiones, debes habilitar TLS v1.3, como se describe en Cómo habilitar TLS v1.3 cuando no está habilitado de forma predeterminada.

Si usas una de las siguientes versiones, TLS v1.3 ya debería estar habilitado de forma predeterminada en los roles de cliente (el procesador de mensajes actúa como cliente para las conexiones TLS en sentido sur), por lo que no es necesario que realices ninguna acción:

  • Oracle JDK 8u341 o superior
  • OpenJDK 8u352 o versiones posteriores

Para que TLS v1.3 funcione, todas las siguientes condiciones deben ser verdaderas:

  • Java subyacente en Message Processor debe ser compatible con TLS v1.3.
  • Se debe habilitar TLS v1.3 en Java en Message Processor.
  • Se debe habilitar TLS v1.3 en la aplicación de Message Processor.

Cómo habilitar TLS v1.3 en Java cuando no está habilitado de forma predeterminada

En esta sección, se explica cómo habilitar TLS v1.3 en caso de que uses una de las siguientes versiones de Java:

  • Oracle JDK 8u261 o posterior, pero menor que Oracle JDK 8u341
  • OpenJDK 8u272 o posterior, pero menos que OpenJDK 8u352

En el procesador de mensajes, establece la propiedad jdk.tls.client.protocols de Java. Los valores están separados por comas y pueden contener uno o más valores TLSv1, TLSv1.1, TLSv1.2, TLSv1.3 y SSLv3.

Por ejemplo, configurar -Djdk.tls.client.protocols=TLSv1.2,TLSv1.3 habilita los protocolos cliente TLSv1.2 y TLSv1.3.

Consulta Cómo cambiar otras propiedades de JVM para obtener información sobre cómo configurar las propiedades de JVM en un componente de Edge.

Para habilitar los protocolos de TLS v1, v1.1, v1.2 y v1.3:

  1. Establece la siguiente configuración en el archivo de configuración del procesador de mensajes (/opt/apigee/customer/application/message-processor.properties):
       bin_setenv_ext_jvm_opts=-Djdk.tls.client.protocols=TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
  2. Reinicia Message Processor.
>

Cómo inhabilitar TLS v1.3 cuando está habilitado de forma predeterminada

Si usas Oracle JDK 8u341 o una versión posterior, o bien OpenJDK 8u352 o una versión posterior, TLSv1.3 estará habilitado de forma predeterminada para los clientes. Si en esos casos quieres inhabilitar TLS v1.3, tienes dos opciones:

  • Configura la SSLInfo del servidor de destino y asegúrate de que TLSv1.3 no se mencione en la lista de protocolos. Consulta Elementos de configuración de TargetEndpoint de TLS/SSL. Nota: Si no se especifican protocolos en la configuración del servidor de destino, los protocolos compatibles con Java se enviarán como opciones en el protocolo de enlace del cliente.
  • Inhabilita TLS v1.3 en el procesador de mensajes. Para ello, inhabilita por completo el protocolo. Consulta Configura el protocolo TLS en Message Processor.

Verifica la versión de Java en un Message Processor

Para verificar la versión de Java instalada en Message Processor, accede al nodo de Message Processor y ejecuta el siguiente comando:

java -version

El resultado de ejemplo a continuación muestra que OpenJDK 8u312 está instalado.

$ java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)

Algoritmos de cifrado admitidos

En la actualidad, Java 8 admite 2 algoritmos de cifrado de TLS v1.3:

  • TLS_AES_256_GCM_SHA384
  • TLS_AES_128_GCM_SHA256

Puedes usar openssl para verificar si tu servidor de destino es compatible con TLS v1.3 y al menos uno de los algoritmos de cifrado anteriores, con el uso que se muestra a continuación. Ten en cuenta que, en este ejemplo, se usa la utilidad openssl11 que tiene habilitado TLS v1.3.

$ openssl11 s_client -ciphersuites "TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256" -connect target_host:target_port -tls1_3