En esta página, se explica cómo configurar TLS 1.3 en los Message Processors de Apigee para el tráfico descendente (tráfico entre el 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 de 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 el Message Processor.
TLS v1.3 y versiones de 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 anterior a Oracle JDK 8u341
- OpenJDK 8u272 o posterior, pero anterior a 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 (Message Processor actúa como cliente para las conexiones TLS hacia el sur), por lo que no necesitas realizar ninguna acción:
- Oracle JDK 8u341 o posterior
- OpenJDK 8u352 o una versión posterior
Para que TLS v1.3 funcione, se deben cumplir todas las condiciones siguientes:
- La versión de Java subyacente en el Message Processor debe admitir TLS v1.3.
- TLS v1.3 debe estar habilitado en Java en el Message Processor.
- TLS v1.3 debe estar habilitado en la aplicación 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 anterior a Oracle JDK 8u341
- OpenJDK 8u272 o posterior, pero anterior a OpenJDK 8u352
En el Message Processor, configura la propiedad de Java jdk.tls.client.protocols.
Los valores se separan con comas y pueden contener uno o más de los siguientes:
TLSv1, TLSv1.1, TLSv1.2, TLSv1.3 y
SSLv3.
Por ejemplo, si configuras -Djdk.tls.client.protocols=TLSv1.2,TLSv1.3, se habilitan los protocolos de cliente
TLSv1.2 y TLSv1.3.
Consulta Cambia 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 TLS v1, v1.1, v1.2 y v1.3, haz lo siguiente:
- Establece la siguiente configuración en
el archivo de configuración del Message Processor
(
/opt/apigee/customer/application/message-processor.properties):bin_setenv_ext_jvm_opts=-Djdk.tls.client.protocols=TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
- Reinicia el 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 está habilitado de forma predeterminada para los clientes. Si deseas inhabilitar TLS v1.3 en esos casos, tienes dos opciones:
- Configura el SSLInfo de tu servidor de destino y asegúrate de que no se mencione TLSv1.3 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 que admita Java se enviarán como opciones en el protocolo de enlace del cliente.
- Inhabilitar TLS v1.3 en el Message Processor inhabilitando el protocolo por completo Consulta Configura el protocolo TLS en el Message Processor.
Verifica la versión de Java en un Message Processor
Para verificar la versión de Java instalada en un Message Processor, accede al nodo del Message Processor y ejecuta el siguiente comando:
java -version
En el siguiente resultado de ejemplo, se 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 compatibles
Actualmente, Java 8 admite 2 algoritmos de cifrado TLS v1.3:
- TLS_AES_256_GCM_SHA384
- TLS_AES_128_GCM_SHA256
Puedes usar openssl para verificar si tu servidor de destino admite TLS v1.3 y, al menos, uno de los
algoritmos de cifrado anteriores con el siguiente comando. 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