Как перенести установленный HTTPS-сеанс с одного сервера на другой?

Есть много HTTPS-серверов (Nginx или Haproxy или что-то еще?):

  • один балансировщик,
  • и несколько рабочих.

Можно ли перенести установленный сеанс HTTPS (с уже полученными заголовками HTTP-запроса) с балансировщика на рабочий?

  • Балансер должен полностью забыть об этой сессии.
  • Работник должен получить оставшуюся часть HTTP-запроса и отправить HTTP-ответ клиенту напрямую через SSL (без учета балансировщика).

Это кажется относительно тривиальным для простого HTTP, потому что он не зашифрован, но кажется немного трудным для HTTPS, потому что специфичные для сеанса параметры рукопожатия SSL должны быть (прозрачно для клиента):

  1. Сериализовано балансировщиком,
  2. Передано работнику,
  3. Десериализовано работником,
  4. Применяется работником.

Ближайшая функция, которую я обнаружил, называется "зеркалирование SSL-соединений" и является частью платформы F5 BIG-IP. Это свидетельствует о том, что описанная проблема практически решаема. Но это (а) запатентованное, (б) чрезвычайно дорогое и (в) решение только для отработки отказа, то есть HA без LB.

0 ответов

Другие вопросы по тегам