Configuration de la SNI entre Edge Message Processor et le serveur backend

Vous consultez la documentation Apigee Edge.
Accédez à la documentation Apigee X.
info

L'indication du nom de serveur (SNI) permet de diffuser plusieurs serveurs de backend HTTPS à partir de la même adresse IP et du même port sans que ces serveurs de backend aient besoin d'utiliser le même certificat TLS. Il s'agit d'une extension du protocole TLS. Lorsque l'extension SNI est activée sur un client, celui-ci transmet le nom d'hôte du serveur de backend dans le cadre du handshake TLS initial. Cela permet au serveur TLS de déterminer le certificat TLS à utiliser pour valider la requête du client.

Par défaut, l'extension SNI est désactivée sur le composant Processeur de messages dans Edge pour le cloud privé afin d'assurer la rétrocompatibilité avec les serveurs backend existants. Si votre serveur backend est configuré pour prendre en charge l'extension SNI, vous devez l'activer sur le composant Processeur de messages. Sinon, les requêtes API qui transitent par Apigee Edge échoueront avec des erreurs de handshake TLS.

Ce document explique comment effectuer les opérations suivantes :

Avant de commencer

Identification d'un serveur compatible avec l'extension SNI

Cette section explique comment déterminer si un serveur de backend est compatible avec l'extension SNI.

  1. Exécutez la commande openssl et essayez de vous connecter au nom d'hôte du serveur concerné (routeur Edge ou serveur de backend) sans transmettre le nom du serveur, comme indiqué ci-dessous :
    openssl s_client -connect hostname:port
  2. Vous pouvez obtenir les certificats et parfois observer l'échec du handshake dans la openssl commande, comme indiqué ci-dessous :
    CONNECTED(00000003) 9362:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.6/src/ssl/s23_clnt.c:593
  3. Exécutez la commande openssl et essayez de vous connecter au nom d'hôte du serveur concerné (routeur Edge ou serveur de backend) en transmettant le nom du serveur , comme indiqué ci-dessous :
    openssl s_client -connect hostname:port -servername hostname
  4. Si vous obtenez un échec de handshake à l'étape 1 ou des certificats différents aux étapes 1 et 2, cela indique que le serveur spécifié est compatible avec l'extension SNI.
  5. Si vous souhaitez vérifier cela pour plusieurs serveurs de backend, vous devez répéter les étapes ci-dessus pour chaque serveur de backend.

Si vous constatez qu'un ou plusieurs de vos serveurs backend sont compatibles avec l'extension SNI, vous devez l'activer sur le composant Processeur de messages, comme expliqué ci-dessous. Sinon, les requêtes API qui transitent par Apigee Edge échoueront avec des erreurs de handshake TLS.

Activer l'extension SNI entre les processeurs de messages Edge et le serveur de backend

Cette section explique comment activer l'extension SNI entre le processeur de messages Edge et le serveur de backend. L'extension SNI peut être activée via la propriété jsse.enableSNIExtension sur le composant Processeur de messages. Pour configurer une propriété sur le processeur de messages, utilisez le jeton conformément à la syntaxe décrite dans Configurer Edge.

Pour activer l'extension SNI sur les processeurs de messages, procédez comme suit :

  1. Rechercher le jeton de la propriété jsse.enableSNIExtension
  2. Activer l'extension SNI sur le processeur de messages

Rechercher le jeton de la propriété jsse.enableSNIExtension

Les étapes suivantes décrivent comment rechercher le jeton de la jsse.enableSNIExtension propriété :

  1. Recherchez la propriété jsse.enableSNIExtension dans le répertoire source du processeur de messages /opt/apigee/edge-message-processor/source à l'aide de la commande suivante :
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
  2. Le résultat de cette commande affiche le jeton de la propriété du processeur de messages jsse.enableSNIExtension comme suit :
    /opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}

    Où la chaîne entre les balises {T}{/T} correspond au nom du jeton que vous pouvez définir dans le fichier .properties du processeur de messages.

    Ainsi, le jeton de la propriété jsse.enableSNIExtension est le suivant :

    conf_system_jsse.enableSNIExtension

Activer l'extension SNI sur le processeur de messages

Les étapes suivantes décrivent comment activer l'extension SNI sur le composant Apigee Processeur de messages.

  1. Sur la machine du processeur de messages, ouvrez le fichier suivant dans un éditeur. S'il n'existe pas déjà, créez-le.
    /opt/apigee/customer/application/message-processor.properties

    Par exemple, pour ouvrir le fichier à l'aide de vi, saisissez la commande suivante :

    vi /opt/apigee/customer/application/message-processor.properties
  2. Ajoutez une ligne au format suivant au fichier de propriétés :
    conf_system_jsse.enableSNIExtension=true
  3. Enregistrez les modifications.
  4. Assurez-vous que ce fichier de propriétés appartient à l'utilisateur apigee, comme indiqué ci-dessous :
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. Redémarrez le processeur de messages, comme indiqué ci-dessous :
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. Vérifiez que la configuration de l'extension SNI est mise à jour sur le processeur de messages.
  7. Si vous avez plusieurs processeurs de messages, répétez les étapes ci-dessus sur tous les processeurs de messages.

Désactiver l'extension SNI entre les processeurs de messages Edge et le serveur de backend

En général, vous ne devriez rencontrer aucun problème après avoir activé l'extension SNI. Toutefois, si vous constatez des problèmes de connectivité entre le processeur de messages Edge et le serveur de backend après avoir activé l'extension SNI, vous pouvez toujours la désactiver en procédant comme suit.

L'extension SNI peut être désactivée en redéfinissant la propriété jsse.enableSNIExtension sur false sur le composant Processeur de messages.

Désactiver l'extension SNI sur les processeurs de messages

Les étapes suivantes décrivent comment désactiver l'extension SNI sur les processeurs de messages Apigee.

  1. Sur la machine du processeur de messages, ouvrez le fichier suivant dans un éditeur. S'il n'existe pas déjà, créez-le.
    /opt/apigee/customer/application/message-processor.properties

    Par exemple, pour ouvrir le fichier à l'aide de vi, saisissez la commande suivante :

    vi /opt/apigee/customer/application/message-processor.properties
  2. Si la ligne conf_system_jsse.enableSNIExtension=true existe dans /opt/apigee/customer/application/message-processor.properties, modifiez-la comme suit :
    conf_system_jsse.enableSNIExtension=false
  3. Enregistrez les modifications.
  4. Assurez-vous que ce fichier de propriétés appartient à l'utilisateur apigee, comme indiqué ci-dessous :
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. Redémarrez le processeur de messages, comme indiqué ci-dessous :
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. Vérifiez que la configuration de l'extension SNI est mise à jour sur le processeur de messages.
  7. Si vous avez plusieurs processeurs de messages, répétez les étapes ci-dessus sur tous les processeurs de messages.

Vérifier la configuration de l'extension SNI sur les processeurs de messages

Cette section explique comment vérifier que la configuration de l'extension SNI a bien été mise à jour sur les processeurs de messages.

Même si vous utilisez le jeton conf_system_jsse.enableSNIExtension pour configurer l'extension SNI sur le processeur de messages, vous devez vérifier que la propriété jsse.enableSNIExtension a bien été définie avec la nouvelle valeur.

  1. Sur la machine du processeur de messages, recherchez la propriété jsse.enableSNIExtension dans le répertoire /opt/apigee/edge-message-processor/conf et vérifiez si elle a été définie avec la nouvelle valeur, comme indiqué ci-dessous :
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
  2. Si la configuration de l'extension SNI est mise à jour sur le processeur de messages, la commande ci-dessus affiche la nouvelle valeur dans le system.properties fichier.

    L'exemple de résultat de la commande ci-dessus après avoir activé l'extension SNI sur le processeur de messages est le suivant :

    /opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true

    De même, l'exemple de résultat de la commande ci-dessus après avoir désactivé l'extension SNI sur le processeur de messages est le suivant :

    /opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false

    Dans l'exemple de résultat ci-dessus, notez que la propriété jsse.enableSNIExtension a été mise à jour avec la nouvelle valeur true ou false dans system.properties. Cela indique que l'extension SNI est activée ou désactivée sur le processeur de messages.

  3. Si l'ancienne valeur de la propriété jsse.enableSNIExtension s'affiche toujours, vérifiez que vous avez suivi toutes les étapes décrites dans la section appropriée pour activer ou désactiver correctement l'extension SNI. Si vous avez manqué une étape, répétez-les toutes correctement.
  4. Si vous ne parvenez toujours pas à activer/désactiver l'extension SNI , contactez l'assistance Apigee Edge.