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 :
- Déterminer si un serveur de backend est compatible avec l'extension SNI
- Activer l'extension SNI sur les processeurs de messages afin de communiquer avec les serveurs de backend compatibles avec l'extension SNI
- Désactiver l'extension SNI sur les processeurs de messages si nécessaire
- Vérifier que la configuration de l'extension SNI a bien été mise à jour sur les processeurs de messages
Avant de commencer
- Si vous ne connaissez pas l'extension SNI, consultez Utiliser l'extension SNI avec Edge.
- Si vous ne savez pas comment configurer Edge sur le cloud privé, consultez Configurer Edge.
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.
-
Exécutez la commande
opensslet 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
-
Vous pouvez obtenir les certificats et parfois observer l'échec du handshake dans la
opensslcommande, 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
-
Exécutez la commande
opensslet 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
- 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.
- 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 :
- Rechercher le jeton de la propriété jsse.enableSNIExtension
- 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é :
-
Recherchez la propriété
jsse.enableSNIExtensiondans 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
-
Le résultat de cette commande affiche le jeton de la propriété du processeur de messages
jsse.enableSNIExtensioncomme 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.propertiesdu processeur de messages.Ainsi, le jeton de la propriété
jsse.enableSNIExtensionest 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.
- 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
-
Ajoutez une ligne au format suivant au fichier de propriétés :
conf_system_jsse.enableSNIExtension=true
- Enregistrez les modifications.
-
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
-
Redémarrez le processeur de messages, comme indiqué ci-dessous :
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Vérifiez que la configuration de l'extension SNI est mise à jour sur le processeur de messages.
- 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.
-
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
-
Si la ligne
conf_system_jsse.enableSNIExtension=trueexiste dans/opt/apigee/customer/application/message-processor.properties, modifiez-la comme suit :conf_system_jsse.enableSNIExtension=false
- Enregistrez les modifications.
-
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
-
Redémarrez le processeur de messages, comme indiqué ci-dessous :
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Vérifiez que la configuration de l'extension SNI est mise à jour sur le processeur de messages.
- 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.
-
Sur la machine du processeur de messages, recherchez la propriété
jsse.enableSNIExtensiondans le répertoire/opt/apigee/edge-message-processor/confet 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
-
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.propertiesfichier.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.enableSNIExtensiona été mise à jour avec la nouvelle valeurtrueoufalsedanssystem.properties. Cela indique que l'extension SNI est activée ou désactivée sur le processeur de messages. -
Si l'ancienne valeur de la propriété
jsse.enableSNIExtensions'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. - Si vous ne parvenez toujours pas à activer/désactiver l'extension SNI , contactez l'assistance Apigee Edge.