Fernwartung Download starten

OPNsense HAProxy plus Lets Encrypt: Multi-Domain-Setup

OPNsenseHAProxyLetsEncryptTLS
OPNsense HAProxy plus Lets Encrypt: Multi-Domain-Setup

Wer im Mittelstand mehrere interne Webdienste betreibt — ERP-Frontend, Ticketsystem, Monitoring, Confluence, Nextcloud — steht früher oder später vor derselben Frage: Wie veröffentlichen Sie diese Anwendungen sauber unter eigenen Hostnamen, ohne für jeden Dienst eine eigene öffentliche IP-Adresse zu binden? Die elegante Antwort heißt Reverse Proxy. Und wenn Ihre Firewall ohnehin eine OPNsense ist, dann liefert das Plugin-Ökosystem aus HAProxy und ACME-Client genau das benötigte Werkzeug — inklusive automatischer Lets-Encrypt-Zertifikate für beliebig viele Domains.

In diesem Beitrag zeigen wir, wie Sie auf einer OPNsense 25.1 einen produktionsreifen Multi-Domain-Reverse-Proxy aufbauen: mit SNI-basiertem Routing, Health Checks für mehrere Backend-Pools, automatischer Zertifikatserneuerung und der wichtigen Wahl zwischen HTTP-01- und DNS-01-Challenge.

Architektur: Eine öffentliche IP, viele Backends

Das Grundprinzip ist schnell erklärt: HAProxy lauscht auf Port 443 (und optional 80 für Redirects) der WAN-Schnittstelle Ihrer OPNsense. Anhand des SNI-Headers im TLS-Handshake — also des Hostnamens, den der Browser im Verbindungsaufbau mitschickt — entscheidet HAProxy, an welches interne Backend die Anfrage geroutet wird. Die TLS-Terminierung erfolgt dabei direkt auf der OPNsense, sodass die internen Server nichts von Zertifikaten wissen müssen.

Ein typisches Setup für einen mittelständischen Betrieb sieht so aus:

Public HostnameInternes BackendZweck
collab.firma.de10.20.10.15:8080Nextcloud
helpdesk.firma.de10.20.10.22:80Zammad
monitor.firma.de10.20.10.31:3000Grafana
wiki.firma.de10.20.10.40:8090BookStack
portal.firma.de10.20.10.55:443ERP-Webfrontend

Alle fünf Dienste teilen sich eine einzige öffentliche IP. Jeder Dienst bekommt sein eigenes Zertifikat von Lets Encrypt — vollautomatisch erneuert, bevor es abläuft. Wartungsaufwand: nahezu null, sobald das Setup einmal sauber konfiguriert ist.

Plugins installieren und Grundkonfiguration

Beginnen Sie unter System -> Firmware -> Plugins mit der Installation der beiden Pakete os-haproxy und os-acme-client. Nach der Installation finden Sie die neuen Menüpunkte unter Services -> HAProxy und Services -> ACME Client.

Aktivieren Sie HAProxy global über Services -> HAProxy -> Settings -> Service -> Enable HAProxy. Im Reiter Settings -> Global Parameters lohnt es sich, die Default-Timeouts auf praxistaugliche Werte zu setzen — 30 Sekunden Connect, 60 Sekunden Client, 60 Sekunden Server. Aktivieren Sie außerdem Send proxy protocol nicht global, sondern nur bei Backends, die das tatsächlich unterstützen.

Anschließend benötigen Sie einen Firewall-Eintrag, der Port 80 und 443 von WAN auf die OPNsense selbst zulässt. Achten Sie darauf, dass dabei keine NAT-Portweiterleitung auf einen internen Server aktiv ist — HAProxy bindet die Ports direkt.

ACME-Client: HTTP-01 oder DNS-01?

Bei der Wahl der Challenge stehen Sie vor einer praktischen Entscheidung. Die HTTP-01-Challenge ist einfacher: Lets Encrypt ruft http://hostname/.well-known/acme-challenge/... auf, der ACME-Client legt dort eine Datei ab und HAProxy reicht die Anfrage an einen internen Validierungs-Listener weiter. Voraussetzung: Der Hostname muss von außen auf Port 80 erreichbar sein.

Die DNS-01-Challenge dagegen funktioniert auch für rein interne Dienste, deren Hostnamen Sie nie nach außen öffnen wollen. Der ACME-Client legt einen TXT-Record im DNS an, Lets Encrypt prüft ihn — fertig. Voraussetzung ist eine API beim DNS-Provider. Cloudflare, Hetzner, INWX, DeSEC und viele andere werden out-of-the-box unterstützt.

Unsere Empfehlung für die Praxis:

  • HTTP-01 für alle Dienste, die ohnehin öffentlich erreichbar sein sollen (Helpdesk-Portal, Kunden-Login, Public Wiki).
  • DNS-01 für interne Dienste mit Wildcard-Zertifikat (*.intern.firma.de), bei denen Sie über Split-DNS arbeiten und die Hostnamen extern gar nicht auflösbar sein sollen.

Eine saubere Trennung sorgt für Klarheit und reduziert die Angriffsfläche. Mehr zum strategischen Aufbau Ihrer Firewall lesen Sie auf unserer Seite zur OPNsense-Beratung.

HAProxy konfigurieren: Backends, Pools und Frontend

Die HAProxy-Konfiguration in OPNsense ist in mehrere Bausteine aufgeteilt — die Reihenfolge der Anlage ist wichtig, damit Sie später auswählen können:

  1. Real Servers definieren die eigentlichen Backend-Hosts mit IP und Port.
  2. Backend Pools bündeln einen oder mehrere Real Servers inklusive Health-Check-Logik.
  3. Public Services sind die Frontend-Listener auf WAN, hier laufen TLS-Terminierung und SNI-Routing.
  4. Conditions und Rules verknüpfen SNI-Hostnamen mit den passenden Backend Pools.

Für den Real Server der Nextcloud könnte das so aussehen: Name nextcloud-srv, FQDN oder IP 10.20.10.15, Port 8080, Verify SSL Certificate deaktiviert, Mode active. Der Backend Pool nextcloud-pool referenziert diesen Server, aktiviert Health Checking mit dem Health Check HTTP /status.php, erwartet HTTP 200 und prüft alle 5 Sekunden.

Im Public Service frontend-tls legen Sie den Listener auf WAN_IP:443 mit aktivem SSL-Offloading, wählen die ACME-Zertifikate aus und aktivieren Default Backend = nextcloud-pool als Fallback. Die SNI-Verzweigung erfolgt über Conditions:

condition: sni-collab        -> Host SNI startsWith collab.firma.de
condition: sni-helpdesk      -> Host SNI startsWith helpdesk.firma.de
condition: sni-monitor       -> Host SNI startsWith monitor.firma.de

rule: route-collab    if sni-collab    -> use_backend nextcloud-pool
rule: route-helpdesk  if sni-helpdesk  -> use_backend zammad-pool
rule: route-monitor   if sni-monitor   -> use_backend grafana-pool

Die Regeln werden in der Reihenfolge ausgewertet, in der Sie sie im Public Service einhängen. Ein zusätzlicher Public Service auf Port 80 mit einer einzigen Regel redirect scheme https code 301 if !{ ssl_fc } sorgt dafür, dass HTTP-Anfragen automatisch auf HTTPS umgeleitet werden.

Zertifikate automatisieren und einbinden

Im ACME-Plugin legen Sie zuerst ein Account-Konto bei Lets Encrypt an (Produktion oder Staging für Tests). Anschließend definieren Sie unter Validations Ihre Challenge-Profile — etwa http-01-haproxy mit dem Modus HAProxy Integration oder dns-01-cloudflare mit Ihrem API-Token. Pro Zertifikat legen Sie unter Certificates einen Eintrag an, weisen ihm Account und Validation zu und tragen die gewünschten Domains ein. Wildcards wie *.intern.firma.de sind ausschließlich mit DNS-01 möglich.

Unter Automations können Sie HAProxy nach jedem erfolgreichen Renewal automatisch reladen lassen. Setzen Sie die Automation Restart HAProxy als Aktion in jedem Zertifikat — ohne diesen Schritt würde HAProxy zwar das neue Zertifikat auf der Platte sehen, es aber erst beim nächsten manuellen Neustart aktiv nutzen.

Prüfen Sie das Setup im Staging-Modus, bevor Sie auf Produktion umschalten — Lets Encrypt hat strikte Rate Limits, und ein fehlkonfiguriertes Setup kann Sie für eine Woche aussperren. Die Logs unter Services -> ACME Client -> Log Files und Services -> HAProxy -> Statistics geben Aufschluss über jede Ausstellung und jeden Request.

Health Checks, Logging und Monitoring

Im Produktivbetrieb sind Health Checks Ihr Sicherheitsnetz. Fällt ein Backend aus, markiert HAProxy es als DOWN und entfernt es aus dem Pool — bei mehreren Real Servers pro Pool läuft der Dienst nahtlos weiter. Aktivieren Sie unter Services -> HAProxy -> Settings -> Service -> Statistics das eingebaute Stats-Interface auf einem internen Port und schützen Sie es mit HTTP-Basic-Auth. Das Dashboard zeigt Latenzen, Session-Zahlen und Health-Status in Echtzeit.

Zusätzlich empfehlen wir, die HAProxy-Logs an Ihren zentralen Syslog-Server zu schicken und in Grafana auszuwerten. Eine sinnvolle Erweiterung ist ein passives Monitoring mit Zabbix oder Checkmk, das die Stats-Schnittstelle abfragt und bei DOWN-Zuständen alarmiert. Wer Loki und Promtail nutzt, kann über Labels nach Frontend und Backend filtern und so schnell Engpässe erkennen.

Fazit und nächste Schritte

Ein zentraler Reverse Proxy auf der OPNsense ist im SMB-Umfeld eine der lohnendsten Investitionen: Sie reduzieren Komplexität, sparen öffentliche IPs, vereinheitlichen TLS-Standards und gewinnen einen klaren Audit-Punkt für alle eingehenden Web-Verbindungen. Die Kombination aus HAProxy, ACME-Client und Lets Encrypt ist in OPNsense seit Jahren erprobt und produktionsstabil.

DATAZONE unterstützt Sie von der Architekturplanung über die Migration bestehender Reverse-Proxy-Setups bis zum laufenden Betrieb — inklusive Monitoring, Backup-Strategie und Penetrationstest. Sprechen Sie uns an über unser Kontaktformular, wenn Sie Ihre Web-Veröffentlichung sauber, sicher und automatisiert aufstellen wollen.

Mehr zu diesen Themen:

IT-Beratung gewünscht?

Kontaktieren Sie uns für eine unverbindliche Beratung zu Proxmox, OPNsense, TrueNAS und mehr.

Jetzt Kontakt aufnehmen