Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
Функция Server Name Indication (SNI) позволяет нескольким бэкэнд-серверам HTTPS обслуживаться с одного и того же IP-адреса и порта без необходимости использования одним и тем же TLS-сертификатом. Это расширение протокола TLS. Когда SNI включен на клиенте, клиент передает имя хоста бэкэнд-сервера в рамках начального рукопожатия TLS. Это позволяет TLS-серверу определить, какой TLS-сертификат следует использовать для проверки запроса от клиента.
По умолчанию функция SNI отключена в компоненте обработки сообщений в Edge для частного облака, чтобы обеспечить обратную совместимость с существующими серверами бэкэнда. Если ваш сервер бэкэнда настроен на поддержку SNI, вам необходимо включить SNI в компоненте обработки сообщений. В противном случае запросы API, проходящие через Apigee Edge, будут завершаться ошибкой подтверждения TLS .
В этом документе объясняется, как выполнить следующие действия:
- Определите, включена ли функция SNI на бэкэнд-сервере.
- Включите SNI на обработчиках сообщений , чтобы обеспечить связь с серверными компонентами, поддерживающими SNI.
- При необходимости отключите SNI на обработчиках сообщений.
- Убедитесь, что конфигурация SNI успешно обновлена на обработчиках сообщений.
Прежде чем начать
- Если вы не знакомы с SNI, прочтите статью «Использование SNI с edge» .
- Если вы не знакомы с настройкой Edge в частном облаке, прочтите статью «Как настроить Edge» .
Идентификация сервера с поддержкой SNI
В этом разделе описывается, как определить, включена ли функция SNI на бэкэнд-сервере.
- Выполните команду
opensslи попробуйте подключиться к соответствующему имени хоста сервера (маршрутизатору Edge или бэкэнд-серверу), не передавая имя сервера , как показано ниже:openssl s_client -connect hostname:port
- Вы можете получить сертификаты, но иногда при выполнении команды
opensslможет наблюдаться ошибка подтверждения соединения, как показано ниже: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
- Выполните команду
opensslи попробуйте подключиться к соответствующему имени хоста сервера (маршрутизатор Edge или бэкэнд-сервер), указав имя сервера , как показано ниже:openssl s_client -connect hostname:port -servername hostname
- Если на шаге 1 происходит сбой при установлении соединения или на шагах 1 и 2 вы получаете разные сертификаты, это означает, что указанный сервер поддерживает SNI.
- Если вы хотите проверить это для нескольких серверов, вам необходимо повторить описанные выше шаги для каждого из них.
Если вы обнаружите, что у вас есть один или несколько бэкэнд-серверов с включенной функцией SNI, вам необходимо включить SNI в компоненте Message Processor, как описано ниже. В противном случае запросы API, проходящие через Apigee Edge, будут завершаться ошибкой TLS Handshake Failures .
Включите протокол SNI между пограничными обработчиками сообщений и бэкэнд-сервером.
В этом разделе объясняется, как включить SNI между обработчиком сообщений Edge и бэкэнд-сервером. SNI можно включить с помощью свойства jsse.enableSNIExtension в компоненте обработчика сообщений. Для настройки любого свойства обработчика сообщений используйте токен в соответствии с синтаксисом, описанным в разделе «Как настроить Edge» .
Для включения SNI на обработчиках сообщений выполните следующие действия:
Найдите токен для свойства jsse.enableSNIExtension
Следующие шаги описывают, как найти токен для свойства jsse.enableSNIExtension :
- Найдите свойство
jsse.enableSNIExtensionв исходном каталоге обработчика сообщений/opt/apigee/edge-message-processor/sourceиспользуя следующую команду:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
- Результат выполнения этой команды отображает токен для свойства
jsse.enableSNIExtensionобработчика сообщений следующим образом:/opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}Где строка между тегами
{T}{/T}— это имя токена, которое можно установить в файле.propertiesобработчика сообщений.Таким образом, токен для свойства
jsse.enableSNIExtensionвыглядит следующим образом:conf_system_jsse.enableSNIExtension
Включите SNI в обработчике сообщений.
Следующие шаги описывают, как включить SNI в компоненте Apigee Message Processor.
- На машине обработки сообщений откройте следующий файл в текстовом редакторе. Если он еще не существует, создайте его.
/opt/apigee/customer/application/message-processor.properties
Например, чтобы открыть файл с помощью
vi, введите следующую команду:vi /opt/apigee/customer/application/message-processor.properties
- Добавьте в файл свойств строку следующего формата:
conf_system_jsse.enableSNIExtension=true
- Сохраните изменения.
- Убедитесь, что этот файл свойств принадлежит пользователю
apigee, как показано ниже:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Перезапустите обработчик сообщений, как показано ниже:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Убедитесь, что конфигурация SNI обновлена в обработчике сообщений.
- Если у вас несколько обработчиков сообщений, повторите описанные выше шаги для всех обработчиков сообщений.
Отключите SNI между обработчиками сообщений Edge и бэкэнд-сервером.
Как правило, после включения SNI проблем возникнуть не должно. Однако, если после включения SNI вы заметите какие-либо проблемы с подключением между Edge Message Processor и бэкэнд-сервером, вы всегда можете отключить SNI, выполнив следующие действия.
Отключить SNI можно, установив свойство jsse.enableSNIExtension обратно в false в компоненте Message Processor.
Отключите SNI в обработчиках сообщений.
Следующие шаги описывают, как отключить SNI на процессорах сообщений Apigee.
- На машине обработки сообщений откройте следующий файл в текстовом редакторе. Если он еще не существует, создайте его.
/opt/apigee/customer/application/message-processor.properties
Например, чтобы открыть файл с помощью
vi, введите следующую команду:vi /opt/apigee/customer/application/message-processor.properties
- Если в файле
/opt/apigee/customer/application/message-processor.propertiesесть строкаconf_system_jsse.enableSNIExtension=true, измените её следующим образом:conf_system_jsse.enableSNIExtension=false
- Сохраните изменения.
- Убедитесь, что этот файл свойств принадлежит пользователю
apigee, как показано ниже:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Перезапустите обработчик сообщений, как показано ниже:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Убедитесь, что конфигурация SNI обновлена в обработчике сообщений.
- Если у вас несколько обработчиков сообщений, повторите описанные выше шаги для всех обработчиков сообщений.
Проверка конфигурации SNI на обработчиках сообщений
В этом разделе объясняется, как проверить, что конфигурация SNI успешно обновлена на обработчиках сообщений.
Даже если вы используете токен conf_system_jsse.enableSNIExtension для настройки SNI в обработчике сообщений, необходимо убедиться, что фактическое свойство jsse.enableSNIExtension было установлено с новым значением.
- На машине обработчика сообщений найдите свойство
jsse.enableSNIExtensionв каталоге/opt/apigee/edge-message-processor/confи проверьте, установлено ли для него новое значение, как показано ниже:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
- Если конфигурация SNI успешно обновлена в обработчике сообщений, то приведенная выше команда отобразит новое значение в файле
system.properties.Пример результата выполнения указанной выше команды после включения SNI в обработчике сообщений выглядит следующим образом:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true
Аналогично, пример результата выполнения приведенной выше команды после отключения SNI в обработчике сообщений выглядит следующим образом:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false
В приведенном выше примере обратите внимание, что свойство
jsse.enableSNIExtensionбыло обновлено до нового значенияtrueилиfalseвsystem.properties. Это указывает на то, что SNI успешно включен или выключен в обработчике сообщений. - Если для свойства
jsse.enableSNIExtensionпо-прежнему отображается старое значение, убедитесь, что вы выполнили все шаги, описанные в соответствующем разделе, для правильного включения или отключения SNI. Если вы пропустили какой-либо шаг, повторите все шаги заново. - Если вам по-прежнему не удаётся включить/отключить SNI, обратитесь в службу поддержки Apigee Edge .
Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.infoФункция Server Name Indication (SNI) позволяет нескольким бэкэнд-серверам HTTPS обслуживаться с одного и того же IP-адреса и порта без необходимости использования одним и тем же TLS-сертификатом. Это расширение протокола TLS. Когда SNI включен на клиенте, клиент передает имя хоста бэкэнд-сервера в рамках начального рукопожатия TLS. Это позволяет TLS-серверу определить, какой TLS-сертификат следует использовать для проверки запроса от клиента.
По умолчанию функция SNI отключена в компоненте обработки сообщений в Edge для частного облака, чтобы обеспечить обратную совместимость с существующими серверами бэкэнда. Если ваш сервер бэкэнда настроен на поддержку SNI, вам необходимо включить SNI в компоненте обработки сообщений. В противном случае запросы API, проходящие через Apigee Edge, будут завершаться ошибкой подтверждения TLS .
В этом документе объясняется, как выполнить следующие действия:
- Определите, включена ли функция SNI на бэкэнд-сервере.
- Включите SNI на обработчиках сообщений , чтобы обеспечить связь с серверными компонентами, поддерживающими SNI.
- При необходимости отключите SNI на обработчиках сообщений.
- Убедитесь, что конфигурация SNI успешно обновлена на обработчиках сообщений.
Прежде чем начать
- Если вы не знакомы с SNI, прочтите статью «Использование SNI с edge» .
- Если вы не знакомы с настройкой Edge в частном облаке, прочтите статью «Как настроить Edge» .
Идентификация сервера с поддержкой SNI
В этом разделе описывается, как определить, включена ли функция SNI на бэкэнд-сервере.
- Выполните команду
opensslи попробуйте подключиться к соответствующему имени хоста сервера (маршрутизатору Edge или бэкэнд-серверу), не передавая имя сервера , как показано ниже:openssl s_client -connect hostname:port
- Вы можете получить сертификаты, но иногда при выполнении команды
opensslможет наблюдаться ошибка подтверждения соединения, как показано ниже: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
- Выполните команду
opensslи попробуйте подключиться к соответствующему имени хоста сервера (маршрутизатор Edge или бэкэнд-сервер), указав имя сервера , как показано ниже:openssl s_client -connect hostname:port -servername hostname
- Если на шаге 1 происходит сбой при установлении соединения или на шагах 1 и 2 вы получаете разные сертификаты, это означает, что указанный сервер поддерживает SNI.
- Если вы хотите проверить это для нескольких серверов, вам необходимо повторить описанные выше шаги для каждого из них.
Если вы обнаружите, что у вас есть один или несколько бэкэнд-серверов с включенной функцией SNI, вам необходимо включить SNI в компоненте Message Processor, как описано ниже. В противном случае запросы API, проходящие через Apigee Edge, будут завершаться ошибкой TLS Handshake Failures .
Включите протокол SNI между пограничными обработчиками сообщений и бэкэнд-сервером.
В этом разделе объясняется, как включить SNI между обработчиком сообщений Edge и бэкэнд-сервером. SNI можно включить с помощью свойства
jsse.enableSNIExtensionв компоненте обработчика сообщений. Для настройки любого свойства обработчика сообщений используйте токен в соответствии с синтаксисом, описанным в разделе «Как настроить Edge» .Для включения SNI на обработчиках сообщений выполните следующие действия:
Найдите токен для свойства
jsse.enableSNIExtensionСледующие шаги описывают, как найти токен для свойства
jsse.enableSNIExtension:- Найдите свойство
jsse.enableSNIExtensionв исходном каталоге обработчика сообщений/opt/apigee/edge-message-processor/sourceиспользуя следующую команду:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
- Результат выполнения этой команды отображает токен для свойства
jsse.enableSNIExtensionобработчика сообщений следующим образом:/opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}Где строка между тегами
{T}{/T}— это имя токена, которое можно установить в файле.propertiesобработчика сообщений.Таким образом, токен для свойства
jsse.enableSNIExtensionвыглядит следующим образом:conf_system_jsse.enableSNIExtension
Включите SNI в обработчике сообщений.
Следующие шаги описывают, как включить SNI в компоненте Apigee Message Processor.
- На машине обработки сообщений откройте следующий файл в текстовом редакторе. Если он еще не существует, создайте его.
/opt/apigee/customer/application/message-processor.properties
Например, чтобы открыть файл с помощью
vi, введите следующую команду:vi /opt/apigee/customer/application/message-processor.properties
- Добавьте в файл свойств строку следующего формата:
conf_system_jsse.enableSNIExtension=true
- Сохраните изменения.
- Убедитесь, что этот файл свойств принадлежит пользователю
apigee, как показано ниже:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Перезапустите обработчик сообщений, как показано ниже:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Убедитесь, что конфигурация SNI обновлена в обработчике сообщений.
- Если у вас несколько обработчиков сообщений, повторите описанные выше шаги для всех обработчиков сообщений.
Отключите SNI между обработчиками сообщений Edge и бэкэнд-сервером.
Как правило, после включения SNI проблем возникнуть не должно. Однако, если после включения SNI вы заметите какие-либо проблемы с подключением между Edge Message Processor и бэкэнд-сервером, вы всегда можете отключить SNI, выполнив следующие действия.
Отключить SNI можно, установив свойство
jsse.enableSNIExtensionобратно вfalseв компоненте Message Processor.Отключите SNI в обработчиках сообщений.
Следующие шаги описывают, как отключить SNI на процессорах сообщений Apigee.
- На машине обработки сообщений откройте следующий файл в текстовом редакторе. Если он еще не существует, создайте его.
/opt/apigee/customer/application/message-processor.properties
Например, чтобы открыть файл с помощью
vi, введите следующую команду:vi /opt/apigee/customer/application/message-processor.properties
- Если в файле
/opt/apigee/customer/application/message-processor.propertiesесть строкаconf_system_jsse.enableSNIExtension=true, измените её следующим образом:conf_system_jsse.enableSNIExtension=false
- Сохраните изменения.
- Убедитесь, что этот файл свойств принадлежит пользователю
apigee, как показано ниже:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Перезапустите обработчик сообщений, как показано ниже:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Убедитесь, что конфигурация SNI обновлена в обработчике сообщений.
- Если у вас несколько обработчиков сообщений, повторите описанные выше шаги для всех обработчиков сообщений.
Проверка конфигурации SNI на обработчиках сообщений
В этом разделе объясняется, как проверить, что конфигурация SNI успешно обновлена на обработчиках сообщений.
Даже если вы используете токен
conf_system_jsse.enableSNIExtensionдля настройки SNI в обработчике сообщений, необходимо убедиться, что фактическое свойствоjsse.enableSNIExtensionбыло установлено с новым значением.- На машине обработчика сообщений найдите свойство
jsse.enableSNIExtensionв каталоге/opt/apigee/edge-message-processor/confи проверьте, установлено ли для него новое значение, как показано ниже:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
- Если конфигурация SNI успешно обновлена в обработчике сообщений, то приведенная выше команда отобразит новое значение в файле
system.properties.Пример результата выполнения указанной выше команды после включения SNI в обработчике сообщений выглядит следующим образом:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true
Аналогично, пример результата выполнения приведенной выше команды после отключения SNI в обработчике сообщений выглядит следующим образом:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false
В приведенном выше примере обратите внимание, что свойство
jsse.enableSNIExtensionбыло обновлено до нового значенияtrueилиfalseвsystem.properties. Это указывает на то, что SNI успешно включен или выключен в обработчике сообщений. - Если для свойства
jsse.enableSNIExtensionпо-прежнему отображается старое значение, убедитесь, что вы выполнили все шаги, описанные в соответствующем разделе, для правильного включения или отключения SNI. Если вы пропустили какой-либо шаг, повторите все шаги заново. - Если вам по-прежнему не удается включить/отключить SNI, обратитесь в службу поддержки Apigee Edge .