Mehrere SSL-Zertifikate auf einem Elastic Load Balancer (ELB) ?

Viele unserer Kunden nutzen die AWS Elastic Load Balancer. Auf einem ELB kann man seit längerem  auch SSL terminieren, so dass einem die lästige SSL Konfiguration auf dem IIS oder Apache erspart bleibt. Allerdings kann man auf einem ELB nur ein SSL-Zertifkat hinterlegen, das wirft hin und wieder Fragen bzw. Probleme auf …

Folgende Lösungsmöglichkeiten bieten sich da an:

  • Verwendung eines Wildcard-Zertifikats wie z.B. *.kunde.de, damit kann man dann diese Use-Cases abbilden:
    • shop.kunde.de
    • www.kunde.de
  • Verwendung eines SAN-SSL-Zertifikates:
    • In einem SAN Zertifikat können bis zu 25 völlig unterschiedliche Domänennamen implementiert werden (z.B. www.kunde.de, www.kunde.com, www.kunde.org, shop.kunde.org)
    • Diese werden auch von ELBs unterstützt: siehe hierzu auch
  • Verwendung mehrerer ELBs
    • Erstellen Sie einfach mehrere ELBs (jeder mit einem SSL-Zertifikat) und konnektieren Sie dieses gegen die vorhandenen EC2-Instanzen.

Elastic Load Balancer und Session-Handling

Keine Web-Applikation kommt eigentlich ohne ein Session-Management aus. Um die einzelnen Requests einem User zu zuordnen übermittelt der Applikationsserver dem Anwender beim ersten Zugriff oder besser nach dem Login eine SessionID, die dann in Form eines Cookies oder einer URL-Variable bei jedem Request an den Applikationsserver übergeben wird. Der Applikationsserver hat dann i.d.R. entsprechende Session-Variablen in seinem RAM, die er aufgrund der übermittelten SessionID dem User zuordnen kann.

Wenn man aber nun für eine bessere Skalierung den Amazon AWS Elastic Load Balancer vor seine Applikation-Server setzen möchte, dann verteilt der Load Balancer die Requests zunächst unabhängig von der SessionID auf einen beliebigen Server, wo dann ggf. die entsprechende Session des Users bei dem zweiten Request gar nicht existiert.

Wie kann man dieses Problem lösen?

mehr … »