Let's Encrypt & HAProxy

Started by 94565745344574, April 08, 2020, 11:01:40 PM

Previous topic - Next topic
Hi,

hab nun erfolgreich meine OPNsense laufen und bin gerade am Thema Let's Encrypt und HAProxy dran.
Ich habe eine Domäne "meine_Domäne.de" und mehrere Subdomains für meine verschiedenen Services.

seafile.meine_Domäne.de
wordpress.meine_Domäne.de
bookstack.meine_Domäne.de
usw....
Die Firewall selbst ist über "opn.meine_Domäne.de" erreichbar

Alle zeigen auf meine DnyDNS Adresse. Also brauche ich einen Dienst der anhand das aufgerufenen URL an den richtigen Server weiterleitet. Genau dass, scheint ja HAProxy zu können. Leider scheitere ich kläglich an dessen Konfiguration :/

Ich habe zwei Tutorials gefunden.
https://blog.bagro.se/lets-encrypt-with-haproxy-on-opnsense/
https://www.triumvirat.org/2020/02/17/haproxy-reverse-proxy-mit-lets-encrypt-zertifikaten-unter-opnsense-20-1/

Bei beiden komme ich bis zu dem Punkt "Virtual Services - Public Services"
Sobald ich diesen konfiguriere und aktiviere (keine Ahnung ob das richtig ist) stürzt meine HAProxy Dienst ab (can't bind port ...)

Das ist so eine Option -> siehe Anhang
Muss man hier 1 von 2, beide oder keines aktivieren??


So richtig klar ist mir auch die Funktionsweise mit Pools, Bedingungen usw... nicht.

Fakt ist, ich habe die Konfiguration für mein Bookstack nach den Tutorials konfiguriert, aber am Punkt "Virtual Services - Public Services" ist Ende  :-\ Ich verstehe auch nicht warum man an diesem Punkt plötzlich

*** Auszug aus den Tutorials ***
,,Listen Addresses": 0.0.0.0:80
,,Select Rule": redirect_acme_challenge
********************************

,,Select Rule: redirect_acme_challenge" auswählen soll/muss!?

Nach 4 Stunden probieren, testen und scheitern^^ gebe ich es für heute auf.

Vielleicht kann mir hier jemand unter die Arme greifen.
Ich wäre sehr dankbar dafür  :D



April 09, 2020, 07:08:52 AM #1 Last Edit: April 09, 2020, 07:23:49 AM by stefanpf
Die Webui von Opnsense benutzt die Ports bereits.
Ein Weg:
System: Settings: Administration
Https Port z.B. auf 444 ändern

"Disable web GUI redirect rule" aktivieren um Port 80 frei zu bekommen


Zur Funktionsweise (vereinfacht):
- in den Realservers legst du die echten internen Entpunkte (Nginx, Apache,..) an
- Jeder Realserver bekommt einen Backend-Pool
  Eigentlich ist der Pool dafür gedacht um z.B. loadbalancing zwischen mehreren Entpunkten, die den gleichen Dienst anbieten zu machen. Das trifft aber bei dir vermutlich nicht zu.

- Ein Public Service nimmt die Anfragen von "aussen" an.
  Dieser kann entweder ein Default BackendPool besitzen (alle Anfragen werden an diesen weitergereicht) oder
  über "selected rules" werden verschiedene Regeln angeboten die dann z.B. fallweise den BackendPool bestimmen.

Rules könnten dann z.B. sein
"Seafile" an " SeafileBackend" wenn Condition "host_seafile" erfüllt.

Die Condition dazu könnte dann so aussehen
Type: host-regex
Host-regex: ^seafile\.meinedomain\.de(:80|:443)?$

Quote from: stefanpf on April 09, 2020, 07:08:52 AM
Die Webui von Opnsense benutzt die Ports bereits.
Ein Weg:
System: Settings: Administration
Https Port z.B. auf 444 ändern

"Disable web GUI redirect rule" aktivieren um Port 80 frei zu bekommen


Zur Funktionsweise (vereinfacht):
- in den Realservers legst du die echten internen Entpunkte (Nginx, Apache,..) an
- Jeder Realserver bekommt einen Backend-Pool
  Eigentlich ist der Pool dafür gedacht um z.B. loadbalancing zwischen mehreren Entpunkten, die den gleichen Dienst anbieten zu machen. Das trifft aber bei dir vermutlich nicht zu.

- Ein Public Service nimmt die Anfragen von "aussen" an.
  Dieser kann entweder ein Default BackendPool besitzen (alle Anfragen werden an diesen weitergereicht) oder
  über "selected rules" werden verschiedene Regeln angeboten die dann z.B. fallweise den BackendPool bestimmen.

Rules könnten dann z.B. sein
"Seafile" an " SeafileBackend" wenn Condition "host_seafile" erfüllt.

Die Condition dazu könnte dann so aussehen
Type: host-regex
Host-regex: ^seafile\.meinedomain\.de(:80|:443)?$

Speziell zu letsencrypt kann ich dir leider nichts sagen, da ich dort die DNS Validierung nutze und mir das in Ha nicht angesehen habe.

Hi,

und besten Dank! Das hilft mir doch schon mal weiter ;)

Grüße