Configura la SNI entre el procesador de mensajes perimetrales y el servidor de backend

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:

Antes de comenzar

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.

  1. Ejecuta el comando openssl y 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
  2. Es posible que obtengas los certificados y, a veces, observes la falla del protocolo de enlace en el openssl comando, 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
  3. Ejecuta el comando openssl y 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
  4. 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.
  5. 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:

  1. Busca el token para la propiedad jsse.enableSNIExtension.
  2. Habilita la SNI en el Message Processor.

Busca el token para la propiedad jsse.enableSNIExtension

En los siguientes pasos, se describe cómo ubicar el token para la jsse.enableSNIExtension propiedad:

  1. Busca la propiedad jsse.enableSNIExtension en el directorio de origen del Message Processor /opt/apigee/edge-message-processor/source con el siguiente comando:
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
  2. El resultado de este comando muestra el token para la propiedad jsse.enableSNIExtension del 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 .properties del Message Processor.

    Por lo tanto, el token para la propiedad jsse.enableSNIExtension es 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.

  1. 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
  2. Agrega una línea con el siguiente formato al archivo de propiedades:
    conf_system_jsse.enableSNIExtension=true
  3. Guarda los cambios.
  4. 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
  5. Reinicia el Message Processor como se muestra a continuación:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. Verifica que la configuración de SNI se haya actualizado en el Message Processor.
  7. 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.

  1. 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
  2. Si la línea conf_system_jsse.enableSNIExtension=true existe en /opt/apigee/customer/application/message-processor.properties, modifícala de la siguiente manera:
    conf_system_jsse.enableSNIExtension=false
  3. Guarda los cambios.
  4. 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
  5. Reinicia el Message Processor como se muestra a continuación:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. Verifica que la configuración de SNI se haya actualizado en el Message Processor.
  7. 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.

  1. En la máquina Message Processor, busca la propiedad jsse.enableSNIExtension en el directorio /opt/apigee/edge-message-processor/conf y verifica si se estableció con el valor nuevo, como se muestra a continuación:
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
  2. Si la configuración de SNI se actualiza correctamente en el Message Processor, el comando anterior muestra el valor nuevo en el system.properties archivo.

    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.enableSNIExtension se actualizó al valor nuevo true o false en system.properties. Esto indica que la SNI se habilitó o inhabilitó correctamente en el Message Processor.

  3. 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.
  4. Si aún no puedes habilitar o inhabilitar la SNI , comunícate con el equipo de asistencia de Apigee Edge .