Configurer TLS 1.3 pour le trafic en direction du sud

Cette page explique comment configurer TLS 1.3 dans les processeurs de messages Apigee pour le trafic dirigé vers le sud (trafic entre le processeur de messages et le serveur backend).

Pour en savoir plus sur la fonctionnalité TLS 1.3 en Java, consultez les notes de version de la mise à jour de JDK 8u261.

La procédure d'activation de TLS 1.3 dépend de la version de Java que vous utilisez. Consultez la section Vérifier la version de Java dans un processeur de messages ci-dessous pour savoir quelle version de Java est installée dans le processeur de messages.

TLS v1.3 et versions de Java

La fonctionnalité TLS 1.3 a été introduite dans les versions suivantes de Java:

  • Oracle JDK 8u261
  • OpenJDK 8u272

Dans les versions suivantes de Java, la fonctionnalité TLS v1.3 existe, mais n'est pas activée par défaut dans les rôles client:

  • Oracle JDK 8u261 ou version ultérieure, mais inférieur au JDK Oracle 8u341
  • OpenJDK 8u272 ou version ultérieure, mais inférieur à OpenJDK 8u352

Si vous utilisez l'une de ces versions, vous devez activer TLS v1.3, comme indiqué dans la section Activer TLS v1.3 lorsqu'il n'est pas activé par défaut.

Si vous utilisez l'une des versions suivantes, TLS v1.3 devrait déjà être activé par défaut dans les rôles client (l'outil de traitement des messages agit en tant que client pour les connexions TLS Sud). Aucune action n'est donc requise de votre part:

  • Oracle JDK 8u341 ou version ultérieure
  • OpenJDK 8u352 ou version ultérieure

Pour que TLS 1.3 fonctionne, toutes les conditions suivantes doivent être remplies:

  • Le Java sous-jacent sur le processeur de messages doit être compatible avec TLS v1.3.
  • TLS v1.3 doit être activé en Java sur le processeur de messages.
  • TLS v1.3 doit être activé dans l'application de processeur de messages.

Activer TLS v1.3 en Java lorsqu'il n'est pas activé par défaut

Cette section explique comment activer TLS v1.3 si vous utilisez l'une des versions suivantes de Java:

  • Oracle JDK 8u261 ou version ultérieure, mais inférieur au JDK Oracle 8u341
  • OpenJDK 8u272 ou version ultérieure, mais inférieur à OpenJDK 8u352

Dans le processeur de messages, définissez la propriété Java jdk.tls.client.protocols. Les valeurs sont séparées par une virgule et peuvent contenir une ou plusieurs des valeurs suivantes : TLSv1, TLSv1.1, TLSv1.2, TLSv1.3 et SSLv3.

Par exemple, la définition de -Djdk.tls.client.protocols=TLSv1.2,TLSv1.3 active les protocoles clients TLSv1.2 et TLSv1.3.

Consultez la section Modifier d'autres propriétés JVM pour apprendre à définir les propriétés JVM dans un composant Edge.

Pour activer les protocoles TLS v1, v1.1, v1.2 et v1.3:

  1. Définissez la configuration suivante dans le fichier de configuration du processeur de messages (/opt/apigee/customer/application/message-processor.properties) :
       bin_setenv_ext_jvm_opts=-Djdk.tls.client.protocols=TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
  2. Redémarrez le processeur de messages.
>

Comment désactiver le protocole TLS v1.3 lorsqu'il est activé par défaut

Si vous utilisez Oracle JDK 8u341 ou version ultérieure, ou OpenJDK 8u352 ou version ultérieure, TLS v1.3 est activé par défaut pour les clients. Si vous souhaitez désactiver TLS v1.3 dans de tels cas, deux options s'offrent à vous:

  • Configurez les paramètres SSLInfo de votre serveur cible et assurez-vous que TLS v1.3 n'est pas mentionné dans la liste des protocoles. Consultez la section Éléments de configuration de TLS/SSL TargetEndpoint. Remarque:Si aucun protocole n'est spécifié dans la configuration du serveur cible, les protocoles compatibles avec Java seront envoyés en tant qu'options lors du handshake client.
  • Désactivez TLS v1.3 dans le processeur de messages en désactivant complètement le protocole. Consultez Définir le protocole TLS sur le processeur de messages.

Vérifier la version de Java dans un processeur de messages

Pour vérifier la version de Java installée dans un processeur de messages, connectez-vous au nœud du processeur de messages et exécutez la commande suivante :

java -version

L'exemple de résultat ci-dessous montre qu'OpenJDK 8u312 est installé.

$ 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)

Algorithmes de chiffrement compatibles

À l'heure actuelle, Java 8 est compatible avec deux algorithmes de chiffrement TLS v1.3:

  • TLS_AES_256_GCM_SHA384
  • TLS_AES_128_GCM_SHA256

Vous pouvez utiliser openssl pour vérifier si votre serveur cible est compatible avec TLS v1.3 et au moins l'un des algorithmes de chiffrement ci-dessous. Notez que cet exemple utilise l'utilitaire openssl11 sur lequel TLS v1.3 est activé.

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