Wenn ich benutzerdefinierte SSL-Zertifikate für Kunden bereitstellen muss, kann ich dann trotzdem Elastic Beanstalk verwenden?

Wenn ich benutzerdefinierte SSL-Zertifikate für Kunden bereitstellen muss, kann ich dann trotzdem Elastic Beanstalk verwenden?

Für eine SaaS-Anwendung, bei der Kunden ihre eigenen benutzerdefinierten Domänennamen verwenden können, verwende ich Lets Encrypt, um die Zertifikate für Kundendomänen zu generieren.

Ich verwende derzeit Elastic Beanstalk (das ELB verwendet).

Ist es mir möglich, Beanstalk weiterhin zu verwenden?

Da der Elastic Load Balancer die Zertifikatsüberprüfung durchführen muss und sich meine Zertifikate auf meinen Instanzen befinden, muss ich den Datenverkehr vermutlich irgendwie selbst zu meinen Instanzen umleiten.

Gibt es sinnvolle Workarounds, könnte ich das machen?

Kunde -> ec2-Instanz mit Haproxy -> ELB -> Beanstalk

Das SSL wird auf meiner EC2-Instanz, auf der Haproxy ausgeführt wird, beendet.

Antwort1

Sie haben hier einige Optionen:

  1. Gehen Sie den von Ihnen genannten Weg und beenden Sie Ihr SSL in einem Cluster von HAProxy-Instanzen, bevor Sie den Datenverkehr über Ihren ELB an Ihre Instanzen weiterleiten.
  2. Machen Sie aus Ihrem ELB einen TCP-Forwarder, der ELB zu einem einfachen Paket-Shuffler macht. Sie verlieren hier zwar einige Vorteile von ELB, aber es funktioniert. In diesem Szenario beenden Sie SSL auf den Instanzen, die Ihre Anwendung hosten. In einer Lastausgleichskonfiguration benötigen Sie daher Kopien des Zertifikats auf allen Ihren Instanzen. Das könnte ziemlich schwierig zu orchestrieren sein, ist aber machbar.
  3. (und meine bevorzugte Option) Verwenden Sie ein ALB. ALBs unterstützen mehrere SSL-Zertifikate und wählen automatisch das richtige Zertifikat aus, wenn der Client den SNI-Header angibt. Sie können die erforderlichen Zertifikatsteile (Schlüssel, Zertifikat, Vermittler) in IAM hochladen und sie in Ihrem ALB auswählen, alles über die API.

ALBs haben viele weitere Vorteile als nur SNI. Sie unterstützen HTTP/2, pfadbasiertes Routing zu mehreren Zielgruppen (in einigen Szenarien nützlich) und sind meines Wissens nach günstiger als klassische ELBs.

Und ja, Elastic Beanstalk unterstützt ALBs. Leider können Sie a) die Verwendung nur bei der Umgebungserstellung auswählen und b) dies nur über die neue Benutzeroberfläche tun. Ich habe einigeBeschwerdenüber UI und EB im Allgemeinen, nachdem ich es in den letzten Wochen wirklich genutzt habe. Hoffentlich werden diese Probleme in Zukunft behoben. In der Zwischenzeit sollten Sie zumindest in der Lage sein, die Konfiguration Ihrer aktuellen Umgebung zu speichern, eine neue aus der gespeicherten Konfiguration zu starten (indem Sie den Load Balancer-Typ vor der Erstellung ändern) und dann die CNAMEs zu wechseln, sobald sie einsatzbereit ist.

Beachten Sie auch: Ihre Umgebung muss für die Verwendung eines VPC konfiguriert sein, um ALBs verwenden zu können.

verwandte Informationen