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

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

Существует множество HTTPS-серверов (Nginx или Haproxy или что-то еще?):

  • одиночный балансир,
  • и несколько работников.

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

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

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

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

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

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