Estás viendo la documentación de Apigee Edge.
Ir a la
documentación de Apigee X. info
La indicación del nombre del servidor (SNI) permite que varios servidores de backend HTTPS se entreguen desde la misma dirección IP y el mismo puerto sin requerir que esos servidores de backend usen el mismo certificado TLS. Es una extensión del protocolo TLS. Cuando la SNI está habilitada en un cliente, este pasa el nombre de host del servidor de backend como parte del protocolo de enlace TLS inicial. Esto permite que el servidor TLS determine qué certificado TLS se debe usar para validar la solicitud del cliente.
De forma predeterminada, la SNI está inhabilitada en el componente Message Processor en Edge para la nube privada para garantizar la retrocompatibilidad con los servidores de backend existentes. Si tu servidor de backend está configurado para admitir SNI, debes habilitar la SNI en el componente Message Processor. De lo contrario, las solicitudes a la API que pasen por Apigee Edge fallarán con errores de protocolo de enlace TLS.
En este documento, se explica cómo hacer lo siguiente:
- Identificar si un servidor de backend tiene habilitada la SNI
- Habilitar la SNI en los Message Processors para comunicarse con los servidores de backend que admiten SNI
- Inhabilitar la SNI en los Message Processors si es necesario
- Verificar que la configuración de SNI se haya actualizado correctamente en los Message Processors
Antes de comenzar
- Si no estás familiarizado con la SNI, lee Cómo usar SNI con Edge.
- Si no estás familiarizado con la configuración de Edge en la nube privada, lee Cómo configurar Edge.
Identificación del servidor habilitado para SNI
En esta sección, se describe cómo identificar si un servidor de backend tiene habilitada la SNI.
-
Ejecuta el comando
openssly trata de conectarte al nombre de host del servidor pertinente (router de Edge o servidor de backend) sin pasar el nombre del servidor, como se muestra a continuación:openssl s_client -connect hostname:port
-
Es posible que obtengas los certificados y, a veces, observes la falla del protocolo de enlace en el
opensslcomando, como se muestra a continuación:
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
-
Ejecuta el comando
openssly trata de conectarte al nombre de host del servidor pertinente (router de Edge o servidor de backend) pasando el nombre del servidor como se muestra a continuación:openssl s_client -connect hostname:port -servername hostname
- Si obtienes una falla del protocolo de enlace en el paso 1 o certificados diferentes en el paso 1 y el paso 2, indica que el servidor especificado tiene habilitada la SNI.
- Si deseas verificar esto para más de un servidor de backend, debes repetir los pasos anteriores para cada servidor de backend.
Si descubres que tienes uno o más servidores de backend que tienen habilitada la SNI, debes habilitar la SNI en el componente Message Processor como se explica a continuación. De lo contrario, las solicitudes a la API que pasen por Apigee Edge fallarán con errores de protocolo de enlace TLS.
Habilita la SNI entre los Message Processors de Edge y el servidor de backend
En esta sección, se explica cómo habilitar la SNI entre el Message Processor de Edge y el servidor de backend. La SNI se puede habilitar a través de la propiedad jsse.enableSNIExtension en
el componente Message Processor. Para configurar cualquier propiedad en el Message Processor, usa
el token según la sintaxis que se describe en
Cómo configurar Edge.
Para habilitar la SNI en los Message Processors, realiza los siguientes pasos:
Busca el token para la propiedad jsse.enableSNIExtension
En los siguientes pasos, se describe cómo ubicar el token para la
jsse.enableSNIExtension propiedad:
-
Busca la propiedad
jsse.enableSNIExtensionen el directorio de origen del Message Processor/opt/apigee/edge-message-processor/sourcecon el siguiente comando:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
-
El resultado de este comando muestra el token para la propiedad
jsse.enableSNIExtensiondel Message Processor de la siguiente manera:/opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}En el ejemplo anterior, la cadena entre las etiquetas
{T}{/T}es el nombre del token que puedes establecer en el archivo.propertiesdel Message Processor.Por lo tanto, el token para la propiedad
jsse.enableSNIExtensiones el siguiente:conf_system_jsse.enableSNIExtension
Habilita la SNI en el Message Processor
En los siguientes pasos, se describe cómo habilitar la SNI en el componente Message Processor de Apigee.
- En la máquina Message Processor, abre el siguiente archivo en un editor. Si aún no existe, créalo.
/opt/apigee/customer/application/message-processor.properties
Por ejemplo, para abrir el archivo con
vi, ingresa el siguiente comando:vi /opt/apigee/customer/application/message-processor.properties
-
Agrega una línea con el siguiente formato al archivo de propiedades:
conf_system_jsse.enableSNIExtension=true
- Guarda los cambios.
-
Asegúrate de que este archivo de propiedades sea propiedad del usuario
apigee, como se muestra a continuación:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
Reinicia el Message Processor como se muestra a continuación:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Verifica que la configuración de SNI se haya actualizado en el Message Processor.
- Si tienes más de un Message Processor, repite los pasos anteriores en todos los Message Processors.
Inhabilita la SNI entre los Message Processors de Edge y el servidor de backend
Por lo general, no deberías ver ningún problema después de habilitar la SNI. Sin embargo, si observas algún problema de conectividad entre el Message Processor de Edge y el servidor de backend después de habilitar la SNI, siempre puedes inhabilitar la SNI realizando los siguientes pasos.
Para inhabilitar la SNI, vuelve a establecer la propiedad jsse.enableSNIExtension
en false en el componente Message Processor.
Inhabilita la SNI en los Message Processors
En los siguientes pasos, se describe cómo inhabilitar la SNI en los Message Processors de Apigee.
-
En la máquina Message Processor, abre el siguiente archivo en un editor. Si aún no existe, créalo.
/opt/apigee/customer/application/message-processor.properties
Por ejemplo, para abrir el archivo con
vi, ingresa el siguiente comando:vi /opt/apigee/customer/application/message-processor.properties
-
Si la línea
conf_system_jsse.enableSNIExtension=trueexiste en/opt/apigee/customer/application/message-processor.properties, modifícala de la siguiente manera:conf_system_jsse.enableSNIExtension=false
- Guarda los cambios.
-
Asegúrate de que este archivo de propiedades sea propiedad del usuario
apigee, como se muestra a continuación:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
Reinicia el Message Processor como se muestra a continuación:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Verifica que la configuración de SNI se haya actualizado en el Message Processor.
- Si tienes más de un Message Processor, repite los pasos anteriores en todos los Message Processors.
Verifica la configuración de SNI en los Message Processors
En esta sección, se explica cómo verificar que la configuración de SNI se haya actualizado correctamente en los Message Processors.
Aunque uses el token conf_system_jsse.enableSNIExtension para
configurar la SNI en el Message Processor, debes verificar que la propiedad real
jsse.enableSNIExtension se haya establecido con el valor nuevo.
-
En la máquina Message Processor, busca la propiedad
jsse.enableSNIExtensionen el directorio/opt/apigee/edge-message-processor/confy verifica si se estableció con el valor nuevo, como se muestra a continuación:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
-
Si la configuración de SNI se actualiza correctamente en el Message Processor, el
comando anterior muestra el valor nuevo en el
system.propertiesarchivo.El resultado de muestra del comando anterior después de habilitar la SNI en el Message Processor es el siguiente:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true
Del mismo modo, el resultado de muestra del comando anterior después de inhabilitar la SNI en el Message Processor es el siguiente:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false
En el resultado del ejemplo anterior, ten en cuenta que la propiedad
jsse.enableSNIExtensionse actualizó al valor nuevotrueofalseensystem.properties. Esto indica que la SNI se habilitó o inhabilitó correctamente en el Message Processor. -
Si aún ves el valor anterior de la propiedad
jsse.enableSNIExtension, entonces verifica que hayas seguido todos los pasos que se describen en la sección correspondiente para habilitar o inhabilitar la SNI correctamente. Si omitiste algún paso, repite todos los pasos de nuevo correctamente. - Si aún no puedes habilitar o inhabilitar la SNI , comunícate con el equipo de asistencia de Apigee Edge .