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 southbound (trafic entre le processeur de messages et le serveur backend).

Pour en savoir plus sur la fonctionnalité TLS 1.3 dans Java, consultez les notes de version de la mise à jour 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 connaître la version de Java 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 Java suivantes, 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 antérieure à Oracle JDK 8u341
  • OpenJDK 8u272 ou version ultérieure, mais antérieure à OpenJDK 8u352

Si vous utilisez l'une de ces versions, vous devez activer TLS v1.3, comme décrit dans 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 (le processeur de messages agit en tant que client pour les connexions TLS vers le sud). Vous n'avez donc aucune action à effectuer :

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

Pour que TLS v1.3 fonctionne, toutes les conditions suivantes doivent être remplies :

  • La version Java sous-jacente du processeur de messages doit être compatible avec TLS v1.3.
  • TLS v1.3 doit être activé dans Java sur le processeur de messages.
  • TLS v1.3 doit être activé dans l'application Processeur de messages.

Comment 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 de Java suivantes :

  • Oracle JDK 8u261 ou version ultérieure, mais antérieure à Oracle JDK 8u341
  • OpenJDK 8u272 ou version ultérieure, mais antérieure à 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 client TLSv1.2 et TLSv1.3.

Consultez Modifier d'autres propriétés de la JVM pour savoir comment définir les propriétés de la 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.
>

Désactiver TLS v1.3 lorsqu'il est activé par défaut

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

  • Configurez le SSLInfo de votre serveur cible et assurez-vous que TLSv1.3 n'est pas mentionné dans la liste des protocoles. Consultez la section Éléments de configuration TLS/SSL TargetEndpoint. Remarque : Si aucun protocole n'est spécifié dans la configuration du serveur cible, tous les protocoles compatibles avec Java seront envoyés en tant qu'options lors du handshake du 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 chiffrements 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-dessus, en utilisant la commande ci-dessous. Notez que cet exemple utilise l'utilitaire openssl11, pour 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