Ich erstelle Webanwendungen für das Unternehmen meines Kunden. Auf der Serverseite gibt es zwei Arten der Netzwerkkommunikation von Server zu Server.
- Getrennte REST-API-Server, die untereinander Anforderungen stellen.
- Kommunikation von Application Load Balancern ( AWS ALB speziell) für ihre automatisch skalierenden EC2-Instanzen. ol>
Derzeit verwenden alle diese Kommunikationen das HTTP-Protokoll. Nur die dem Benutzer zugewandten Knoten (wie der Load Balancer oder der Reverse-Proxy des Webservers) stellen HTTPS mit gültigen Zertifikaten zur Verfügung.
Der Kunde bittet uns, sie alle in HTTPS zu ändern, da er glaubt, dass dies der Fall ist moderne Best Practice, HTTPS immer anstelle von HTTP überall zu verwenden.
Ich möchte mit dem Kunden streiten, bin aber kein Sicherheitsexperte. Bitte helfen Sie mir, mein Verständnis unten zu überprüfen und mich zu korrigieren, wenn ich falsch liege.
Meiner Ansicht nach besteht der Zweck des HTTPS-Protokolls darin, ein vertrauenswürdiger Kanal in einer nicht vertrauenswürdigen Umgebung (wie dem Internet) zu sein ). Daher sehe ich keinen Vorteil darin, den bereits vertrauenswürdigen Kanal auf HTTPS zu ändern. Da die Installation von Zertifikaten auf allen Servern die Wartung erschwert, besteht die Möglichkeit, dass der Kunde seine Anwendungsserver eines Tages als defekt ansieht, da auf einigen Servern das Zertifikat abgelaufen ist und niemand weiß.
Ein anderer Problem: Wenn wir den gesamten Anwendungsserver konfigurieren müssen, z. B. Apache, hinter dem Lastausgleich, um HTTPS bereitzustellen, wie lautet dann der Servername
, der in den VirtualHost
eingefügt werden soll? Derzeit haben wir kein Problem damit, den Domainnamen wie my-website.example.com
für HTTP VirtualHost
zu verwenden. Aber wenn es HTTPS sein soll, müssen wir das Zertifikat von my-website.example.com
für alle Instanzen hinter dem Load-Balancer installieren? Ich finde es komisch, weil wir dann viele Server haben, die behaupten, my-website.example.com
zu sein.