Wie migriert man eine bestehende HTTPS-Sitzung von einem Server auf einen anderen?

Wie migriert man eine bestehende HTTPS-Sitzung von einem Server auf einen anderen?

Es gibt viele HTTPS-Server (Nginx oder Haproxy oder etwas anderes?):

  • Einzelbalancer,
  • und mehrere Arbeiter.

Ist es möglich, eine etablierte HTTPS-Sitzung (mit bereits empfangenen HTTP-Anforderungsheadern) vom Balancer zum Worker zu migrieren?

  • Balancer sollte diese Sitzung komplett vergessen.
  • Der Worker sollte den Rest des HTTP-Anforderungstexts empfangen und eine HTTP-Antwort senden.direktzum Client über SSL (Balancer weglassen).

Dies scheintverhältnismäßigtrivial für einfaches HTTP, da es unverschlüsselt ist, aber es scheint einbisschenschwierig für HTTPS, da sitzungsspezifische SSL-Handshake-Parameter (für den Client transparent) sein sollten:

  1. Serialisiert durch Balancer,
  2. Übertragen auf den Arbeitnehmer,
  3. Deserialisiert durch Arbeiter,
  4. Vom Arbeiter angewendet.

Die ähnlichste Funktion, die ich gefunden habe, heißt „SSL-Verbindungsspiegelung“ und ist Teil der F5 BIG-IP-Plattform. Sie zeigt, dass das beschriebene Problem praktisch lösbar ist. Aber es ist (a) proprietär, (b) extrem teuer und (c) eine reine Failover-Lösung, also HA ohne LB.

verwandte Informationen