Shared Frontend mit HA-Proxy
-
Hallo zusammen,
ich habe auf meiner PFSense LetsEncrypt eingerichtet und anschließend den HA-Proxy. Ich habe eine feste WAN-IP die an der PFSense anliegt (10.20.30.40).
Für einen lokalen Host "gw.mydomain.de" (hier läuft die Groupware) klappt das auch problemlos. Ich habe auf meinem Webserver (öffentlich bei All-Inkl) einen A-Record gesetzt:
gw.mydomain.de -> 10.20.30.40
Auf der PFSense ein Backend angelegt:
Name: gw.mydomain.de
Forwardto: Adress+Port
Address: 192.168.24.6
Port: 443
Encrypt(SSL): yes
SSL checks: nound ein Frontend:
Name: gw.mydomain.de
[External address]
Listen address: WAN address (IPv4)
Port: 443[Access Control lists]
Name: gw.mydomain.de
Expression: Host matches: gw.mydomain.de[Aktion]
Action: Use Backend
Condition acl names: gw.mydomain.de
backend: gw.mydomain.de[SSL Offloading]
Zertifikat: gw.mydomain.de (... LetsEncrypt...)Das funktioniert auch alles. Wenn ich von extern https://gw.mydomain.de aufrufe lande ich auf dem internen Groupware-Server und das Zertifikat ist korrekt und Vertrauenswürdig.
Nun möchte ich jedoch zwei weitere interne Maschinen ebenso erreichen. Auf dem All-Inkl-Server habe ich dazu zwei weitere A-Records gesetzt:
pbx01.mydomain.de -> 10.20.30.40
cloud.mydomain.de -> 10.20.30.40Jetzt kommen die Fragen/Schwierigkeiten. In PFSense brauche ich hierzu ja ein Shared Frontend Im Frontend gibt es ja eine entsprechende Option "Shared Frontend" Wenn ich diese aktiviere ändert sich die Maske und ich muss ein Primary frontend angeben. Hier steht jedoch nur das Frontend was ich für die acme-challange angelegt habe zur Auswahl was ja nicht richtig sein kann.
Wie muss ich für die Konfiguration des Shared Frontend vorgehen?
Viele Grüße
sven -
Hallo zusammen,
ich habe hier:
https://blog.devita.co/pfsense-to-proxy-traffic-for-websites-using-pfsense/gefunden wie es funktioniert.. Also erledigt :-)
-
wieso ein shared frontend
für die gleiche domain ?aber wenns funktioniert !
lgNP -
ich kann die Frage wahrscheinlich nicht adäquat beantworten aber ich habe ja keine Wildcard-Zertifikate - also ein Zertifikat pro Hostname. Wenn ich kein shared Frontend mache kann ich in einem Frontend ja nur ein Zertifikat auswählen und somit nur einen Host mit einem verifiziertem Zertifikat ansprechen.
Nun habe ich ein Frontend (ohne die Option "Shared Frontend") angelegt - es trägt lediglich den Namen "shared_frontend" und hierfür ein eigenes Zertifikat angelegt. Bei den einzelnen Frontends für die tatsächlichen Hosts habe ich "shared_frontend" als prmäres Frontend angewählt, die Option "Shared Frontend" ausgewählt und unter Erweitert:
-
Specify additional certificates for this shared-frontend.
-
Zertifikat für den tatsächlichen Host ausgewählt und:
-
Add ACL for certificate CommonName. (host header matches the "CN" of the certificate)
-
Add ACL for certificate Subject Alternative Names.
gesetzt. Die Vorgehensweise erschien mir logisch denn ohne die Option "Shared Frontend" kann ich jedem Frontend ja nur ein einziges Zertifikat zuordnen und somit nur einen Hostnamen ansprechen. Versuche ich ein zweites Frontend für den zweiten Host anzulegen - was ich zuerst probiert habe - meckert er da es auf die gleiche öffentliche IP zeigt. Das funktioniert somit nicht.
Wie gesagt ... das geschriebene ist unter Vorbehalt zu sehen da ich noch nicht so wirklich Tief im Thema drin bin. Sollte meine Vorgehensweise nicht korrekt sein oder einfach nicht optimal bin ich für jede Erleuchtung sehr dankbar :-)
-
-
Versuch mal folgenden Ansatz
für jedes backend das du von extern auf der gleichen IP+Port (für den Anfang) mit ssl offloading erreichen willsta) im frontend das Zert für das erste Backend eingeben
b) weiter unten die Zertifikate für jedes weitere Backend eintragen
- deine CA eintragen
den Rest mittels ACL host matches machen
!!Nicht vergessen!! ein default backend zu definieren wenn die ACLs nicht greifen das er darauf zurück fällt (man kann drüber diskutieren ob das sinnvoll oder anders zu handhaben aber für die Fehlersuche sehr hilfreich)
so rennt das mit einer domain und ein paar backends ;)
alle Certs via LE / DNS zeigt mittels A Record auf die extIPlgNP
- deine CA eintragen