SNI для балансировки нагрузки многопользовательской среды в 2015 году

SNI для балансировки нагрузки многопользовательской среды в 2015 году

Мы являемся многопользовательским сервисом и завершаем наш SSL на наших балансировщиках нагрузки (HAProxy + Apache для завершения SSL), это вызвало проблемы роста из-за требований выделенного IP. Но времена изменились, и мы рассматриваем возможность перехода на SNI, поэтому я надеялся на обоснованные мнения в 2015 году о принятии его в качестве нашего стандарта.

Я собираюсь изложить наши предположения:

  • SSL мертв (да здравствует TLS) из-за атаки POODLE,
  • TLS имеет встроенный SNI
  • IE6 / Windows XP (< sp3) мертвы по многим причинам, не последней из которых является окончание поддержки XP
  • На данный момент мы прекратили поддержку IE7 и, по сути, IE8.

Правильно ли я понимаю, что SNI в настоящее время поддерживается по всему миру?

... и ...

Существуют ли сценарии, которые мне следует рассмотреть помимо этого и которые могут повлиять на поддержку?

... и наконец ...

Теперь, когда HAProxy 1.5 напрямую поддерживает терминацию SSL, есть ли какие-либо оговорки по вашему опыту, связанные непосредственно с SNI, которые повлияют на нашу возможность развернуть эту услугу?

решение1

Правильно ли я понимаю, что SNI в настоящее время поддерживается по всему миру?

Если рассматривать браузеры — да.

Если вам приходится иметь дело с другими видами приложений — не совсем:

  • Python 3 имеет поддержку, но Python 2.7 получил поддержку только в недавно выпущенной версии 2.7.9.
  • Android имеет ограниченную поддержку. HTTPUrlConnection поддерживался долгое время, но SDK содержал старую версию Apache HTTPClient для более продвинутых вещей, и эта версия не поддерживала SNI. Я не знаю, изменилась ли ситуация с последним SDK.
  • Поддержка Java появилась только в JDK 1.7
  • Все еще существуют некоторые краулеры для поисковых систем, которые не поддерживают SNI. Согласноhttps://www.mnot.net/blog/2014/05/09/if_you_can_read_this_youre_sniingэто содержится в 05/2014 Bing, Yahoo, Baidu и других.

решение2

Правильно ли я понимаю, что SNI в настоящее время поддерживается по всему миру?

По сути, да - хотя вы, вероятно, столкнетесь с некоторыми пользователями пограничного случая, которые будут жаловаться на поломку, если требуется SNI. Если у вас есть возможность сказать этим людям "используйте браузер из этого десятилетия, пожалуйста" для вашего сервиса, то вы готовы.

Существуют ли сценарии, которые мне следует рассмотреть помимо этого и которые могут повлиять на поддержку?

Поддержка браузера/клиентской ОС — это самое главное, хотя я могу представить себе и другие забавные проблемы с корпоративными сетями, использующими прокси-серверы SSL, завершающие соединение, которые не поддерживают передачу части SNI в процессе рукопожатия TLS, что также нарушит работу SNI.

Теперь, когда HAProxy 1.5 напрямую поддерживает терминацию SSL, есть ли какие-либо оговорки по вашему опыту, связанные непосредственно с SNI, которые повлияют на нашу возможность развернуть эту услугу?

Я не могу напрямую говорить о недостатках HAProxy — мы используем его SSL-терминацию, но не SNI поверх него.

Связанный контент