Wer im Mittelstand mehrere interne Webdienste betreibt — ERP-Frontend, Ticketsystem, Monitoring, Confluence, Nextcloud — steht frueher oder spaeter vor derselben Frage: Wie veroeffentlichen Sie diese Anwendungen sauber unter eigenen Hostnamen, ohne fuer jeden Dienst eine eigene oeffentliche IP-Adresse zu binden? Die elegante Antwort heisst Reverse Proxy. Und wenn Ihre Firewall ohnehin eine OPNsense ist, dann liefert das Plugin-Oekosystem aus HAProxy und ACME-Client genau das benoetigte Werkzeug — inklusive automatischer Lets-Encrypt-Zertifikate fuer 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 fuer mehrere Backend-Pools, automatischer Zertifikatserneuerung und der wichtigen Wahl zwischen HTTP-01- und DNS-01-Challenge.
Architektur: Eine oeffentliche IP, viele Backends
Das Grundprinzip ist schnell erklaert: HAProxy lauscht auf Port 443 (und optional 80 fuer 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 muessen.
Ein typisches Setup fuer einen mittelstaendischen Betrieb sieht so aus:
| Public Hostname | Internes Backend | Zweck |
|---|---|---|
| collab.firma.de | 10.20.10.15:8080 | Nextcloud |
| helpdesk.firma.de | 10.20.10.22:80 | Zammad |
| monitor.firma.de | 10.20.10.31:3000 | Grafana |
| wiki.firma.de | 10.20.10.40:8090 | BookStack |
| portal.firma.de | 10.20.10.55:443 | ERP-Webfrontend |
Alle fuenf Dienste teilen sich eine einzige oeffentliche IP. Jeder Dienst bekommt sein eigenes Zertifikat von Lets Encrypt — vollautomatisch erneuert, bevor es ablaeuft. 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 Menuepunkte unter Services -> HAProxy und Services -> ACME Client.
Aktivieren Sie HAProxy global ueber 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 ausserdem Send proxy protocol nicht global, sondern nur bei Backends, die das tatsaechlich unterstuetzen.
Anschliessend benoetigen Sie einen Firewall-Eintrag, der Port 80 und 443 von WAN auf die OPNsense selbst zulaesst. 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 aussen auf Port 80 erreichbar sein.
Die DNS-01-Challenge dagegen funktioniert auch fuer rein interne Dienste, deren Hostnamen Sie nie nach aussen oeffnen wollen. Der ACME-Client legt einen TXT-Record im DNS an, Lets Encrypt prueft ihn — fertig. Voraussetzung ist eine API beim DNS-Provider. Cloudflare, Hetzner, INWX, DeSEC und viele andere werden out-of-the-box unterstuetzt.
Unsere Empfehlung fuer die Praxis:
- HTTP-01 fuer alle Dienste, die ohnehin oeffentlich erreichbar sein sollen (Helpdesk-Portal, Kunden-Login, Public Wiki).
- DNS-01 fuer interne Dienste mit Wildcard-Zertifikat (
*.intern.firma.de), bei denen Sie ueber Split-DNS arbeiten und die Hostnamen extern gar nicht aufloesbar sein sollen.
Eine saubere Trennung sorgt fuer Klarheit und reduziert die Angriffsflaeche. 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 spaeter auswaehlen koennen:
- Real Servers definieren die eigentlichen Backend-Hosts mit IP und Port.
- Backend Pools buendeln einen oder mehrere Real Servers inklusive Health-Check-Logik.
- Public Services sind die Frontend-Listener auf WAN, hier laufen TLS-Terminierung und SNI-Routing.
- Conditions und Rules verknuepfen SNI-Hostnamen mit den passenden Backend Pools.
Fuer den Real Server der Nextcloud koennte 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 prueft alle 5 Sekunden.
Im Public Service frontend-tls legen Sie den Listener auf WAN_IP:443 mit aktivem SSL-Offloading, waehlen die ACME-Zertifikate aus und aktivieren Default Backend = nextcloud-pool als Fallback. Die SNI-Verzweigung erfolgt ueber 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 einhaengen. Ein zusaetzlicher Public Service auf Port 80 mit einer einzigen Regel redirect scheme https code 301 if !{ ssl_fc } sorgt dafuer, 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 fuer Tests). Anschliessend 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 gewuenschten Domains ein. Wildcards wie *.intern.firma.de sind ausschliesslich mit DNS-01 moeglich.
Unter Automations koennen Sie HAProxy nach jedem erfolgreichen Renewal automatisch reladen lassen. Setzen Sie die Automation Restart HAProxy als Aktion in jedem Zertifikat — ohne diesen Schritt wuerde HAProxy zwar das neue Zertifikat auf der Platte sehen, es aber erst beim naechsten manuellen Neustart aktiv nutzen.
Pruefen Sie das Setup im Staging-Modus, bevor Sie auf Produktion umschalten — Lets Encrypt hat strikte Rate Limits, und ein fehlkonfiguriertes Setup kann Sie fuer eine Woche aussperren. Die Logs unter Services -> ACME Client -> Log Files und Services -> HAProxy -> Statistics geben Aufschluss ueber jede Ausstellung und jeden Request.
Health Checks, Logging und Monitoring
Im Produktivbetrieb sind Health Checks Ihr Sicherheitsnetz. Faellt ein Backend aus, markiert HAProxy es als DOWN und entfernt es aus dem Pool — bei mehreren Real Servers pro Pool laeuft der Dienst nahtlos weiter. Aktivieren Sie unter Services -> HAProxy -> Settings -> Service -> Statistics das eingebaute Stats-Interface auf einem internen Port und schuetzen Sie es mit HTTP-Basic-Auth. Das Dashboard zeigt Latenzen, Session-Zahlen und Health-Status in Echtzeit.
Zusaetzlich 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-Zustaenden alarmiert. Wer Loki und Promtail nutzt, kann ueber Labels nach Frontend und Backend filtern und so schnell Engpaesse erkennen.
Fazit und naechste Schritte
Ein zentraler Reverse Proxy auf der OPNsense ist im SMB-Umfeld eine der lohnendsten Investitionen: Sie reduzieren Komplexitaet, sparen oeffentliche IPs, vereinheitlichen TLS-Standards und gewinnen einen klaren Audit-Punkt fuer alle eingehenden Web-Verbindungen. Die Kombination aus HAProxy, ACME-Client und Lets Encrypt ist in OPNsense seit Jahren erprobt und produktionsstabil.
DATAZONE unterstuetzt Sie von der Architekturplanung ueber die Migration bestehender Reverse-Proxy-Setups bis zum laufenden Betrieb — inklusive Monitoring, Backup-Strategie und Penetrationstest. Sprechen Sie uns an ueber unser Kontaktformular, wenn Sie Ihre Web-Veroeffentlichung sauber, sicher und automatisiert aufstellen wollen.
Mehr zu diesen Themen:
Weitere Artikel
OPNsense 26.7 Release: Was Neues kommt
OPNsense 26.7 steht an: Was nach dem traditionellen Juli-Major-Release zu erwarten ist — HardenedBSD/FreeBSD-Update, Plugin-Aktualisierungen, GUI-Verbesserungen. Ein ehrlicher Blick auf den Stand der öffentlichen Roadmap.
WireGuard Site-to-Site VPN in 30 Minuten
Konkretes Tutorial — zwei Standorte (Hauptbüro und Filiale) per WireGuard auf OPNsense verbinden. Schlüsselpaare erzeugen, Peers konfigurieren, Allowed-IPs richtig setzen, Persistent-Keepalive für NAT-Traversal, Firewall- und Routing-Regeln. Praxistauglich in 30 Minuten.
OPNsense Multi-WAN: Failover für KMU richtig einrichten
Zwei WAN-Verbindungen in OPNsense — Glasfaser und LTE-Backup — als Failover für den Mittelstand richtig konfigurieren. Gateway-Groups, Tier 1/2, Health-Checks via Monitor-IP, Sticky-Connections für VoIP, Outbound-NAT pro WAN. Warum echtes Failover für die meisten KMU besser ist als Load-Balancing.