So langsam biegen wir auf die Zielgerade ein: Der Testserver liefert eine Webseite aus, DynDNS haut hin und der (ungesicherte) Zugriff funktioniert. Da fehlt nur noch eine Kleinigkeit: Heutzutage gehört es zum guten Ton, Webseiten mit Verschlüsselung auszuliefern. Das ist mit unserer bisherigen Konfiguration gar nicht so schwer: Wir müssen lediglich unseren erstellten Öffentlichen Dienst anpassen.
Die Hörende Adresse ändern wir von 0.0.0.0:80 auf 0.0.0.0:443 – also hören wir nicht mehr auf alles, was über Port 80 ankommt, sondern nur noch auf das, was über Port 443 eintrifft. Außerdem aktivieren wie das „SSL Offloading“ (übersetzt mit „SSL Entlastung“) und wählen unter „Zertifikate“ unser Wildcard-Zertifikat aus. Den Rest belassen wir so. Wenn wir das jetzt speichern und die Änderungen anwenden, können wir kurz darauf über https auf unsere Seite zugreifen und sehen auch, dass wir sicher sind:
Was jetzt aber nicht mehr funktioniert, ist der unsichere Zugriff über http. Das ist grundsätzlich nicht schlimm, schöner wäre es aber, wenn Zugriffe über http umgeleitet werden würden auf https. Um das zu realisieren, brauchen wir als erstes eine Bedingung, die prüft, ob der Datenverkehr unverschlüsselt über http eingeht.
Dann erstellen wir eine Bedingung, die die Anfrage auf https umlenkt, wenn die Bedingung erfüllt ist:
Zum Schluss brauchen wir noch einen weiteren öffentlichen Dienst. Der hört auf die Adresse 0.0.0.0:80 und hat als einzige weitere Einstellung noch die eben erstellte „Umbiege-Regel“:
Wenn wir nun (nachdem wir die Änderungen gespeichert haben) über http auf unsere Testseite zugreifen, werden wir automatisch auf https umgeleitet.
Wenn wir nun weitere Dienste zugänglich machen wollen, läuft das immer nach dem gleichen Schema ab:
- Realen Server anlegen
- Backend-Pool anlegen und den realen Server zuordnen
- Bedingung anlegen, in der der Hostname geprüft wird
- Regel anlegen, die den Backend-Pool nutzt, wenn die Bedingung erfüllt ist.
- Dem Öffentlichen Dienst, der auf 0.0.0.0:43 hört, diese Regel zuordnen (zusätzlich zu bereits bestehenden).
Das war’s erstmal zum Thema HAProxy. Es gibt noch ein paar weitere Themen, die aber momentan für mich nicht relevant sind. Load Balancing gehört zum Beispiel dazu; auch nicht uninteressant sind Map Files oder Authentifizierung. Im Moment habe ich dafür keine Anwendungsfälle (Load Balancing könnte tatsächlich noch ein Thema werden, wenn ich mich intensiver mit dem Thema „Homelab“ auseinandersetze).