SSL/TLS-Konfiguration
PRX-WAF unterstützt automatische TLS-Zertifikatsverwaltung via Let's Encrypt (ACME v2), manuelle Zertifikatskonfiguration und HTTP/3 via QUIC. Diese Seite behandelt alle HTTPS-bezogenen Konfigurationen.
Automatische Zertifikate (Let's Encrypt)
PRX-WAF verwendet die instant-acme-Bibliothek, um TLS-Zertifikate automatisch von Let's Encrypt zu beziehen und zu erneuern. Wenn ein Host mit aktiviertem SSL konfiguriert ist, wird PRX-WAF:
- ACME HTTP-01-Challenges auf Port 80 beantworten
- Ein Zertifikat von Let's Encrypt beziehen
- Das Zertifikat in der Datenbank speichern
- Vor Ablauf automatisch erneuern
TIP
Damit automatische Zertifikate funktionieren, muss Port 80 vom Internet aus erreichbar sein, um ACME HTTP-01-Challenge-Validierung durchzuführen.
Manuelle Zertifikate
Für Umgebungen, in denen automatisches ACME nicht geeignet ist, Zertifikate manuell konfigurieren:
[http3]
cert_pem = "/etc/prx-waf/tls/cert.pem"
key_pem = "/etc/prx-waf/tls/key.pem"Zertifikate können auch über die Admin-UI hochgeladen werden:
- Im Seitenmenü zu SSL-Zertifikate navigieren
- Zertifikat hochladen klicken
- Zertifikatskette (PEM) und privaten Schlüssel (PEM) angeben
- Zertifikat einem Host zuordnen
Oder via API:
curl -X POST http://localhost:9527/api/certificates \
-H "Authorization: Bearer $TOKEN" \
-F "cert=@/path/to/cert.pem" \
-F "key=@/path/to/key.pem" \
-F "host=example.com"TLS-Listener
PRX-WAF lauscht auf HTTPS-Traffic auf der konfigurierten TLS-Adresse:
[proxy]
listen_addr = "0.0.0.0:80" # HTTP
listen_addr_tls = "0.0.0.0:443" # HTTPSHTTP/3 (QUIC)
PRX-WAF unterstützt HTTP/3 via der Quinn QUIC-Bibliothek. In der Konfiguration aktivieren:
[http3]
enabled = true
listen_addr = "0.0.0.0:443"
cert_pem = "/etc/prx-waf/tls/cert.pem"
key_pem = "/etc/prx-waf/tls/key.pem"WARNING
HTTP/3 erfordert ein gültiges TLS-Zertifikat. Die Zertifikats- und Schlüsselpfade müssen angegeben werden, wenn HTTP/3 aktiviert ist. Automatische Let's Encrypt-Zertifikate werden auch für HTTP/3 unterstützt.
HTTP/3 läuft über UDP auf demselben Port wie HTTPS (443). Clients, die QUIC unterstützen, werden automatisch aktualisiert, während andere auf HTTP/2 oder HTTP/1.1 über TCP zurückfallen.
HTTPS-Weiterleitung
Um den gesamten HTTP-Traffic auf HTTPS umzuleiten, Hosts mit Port 80 (HTTP) und Port 443 (HTTPS) konfigurieren. PRX-WAF leitet HTTP-Anfragen automatisch zu ihren HTTPS-Äquivalenten um, wenn SSL für einen Host konfiguriert ist.
Zertifikatsspeicherung
Alle Zertifikate (automatisch und manuell) werden in der PostgreSQL-Datenbank gespeichert. Die Tabelle certificates (Migration 0003) enthält:
- Zertifikatskette (PEM)
- Privater Schlüssel (verschlüsselt mit AES-256-GCM)
- Domainname
- Ablaufdatum
- ACME-Kontoinformationen (für automatische Erneuerung)
INFO
Private Schlüssel werden im Ruhezustand mit AES-256-GCM verschlüsselt. Der Verschlüsselungsschlüssel wird aus der Konfiguration abgeleitet. Unverschlüsselte private Schlüssel niemals in der Datenbank speichern.
Docker mit HTTPS
Beim Betrieb in Docker Port 443 für TLS-Traffic mappen:
# docker-compose.yml
services:
prx-waf:
ports:
- "80:80"
- "443:443"
- "9527:9527"Für HTTP/3 auch den UDP-Port mappen:
ports:
- "80:80"
- "443:443/tcp"
- "443:443/udp" # HTTP/3 QUIC
- "9527:9527"Best Practices
In der Produktion immer HTTPS verwenden. HTTP sollte nur ACME-Challenges bereitstellen und auf HTTPS umleiten.
HTTP/3 aktivieren für Clients, die es unterstützen. QUIC bietet schnelleren Verbindungsaufbau und bessere Performance in verlustbehafteten Netzwerken.
Automatische Zertifikate verwenden, wenn möglich. Let's Encrypt-Zertifikate sind kostenlos, von allen Browsern vertrauenswürdig und werden von PRX-WAF automatisch erneuert.
Admin-API-Zugriff einschränken. Die Admin-API sollte nur von vertrauenswürdigen Netzwerken zugänglich sein:
[security]
admin_ip_allowlist = ["10.0.0.0/8", "172.16.0.0/12"]Nächste Schritte
- Reverse-Proxy -- Backend-Routing und Host-Konfiguration
- Gateway-Übersicht -- Antwort-Caching und Tunnel
- Cluster-Modus -- Multi-Knoten-TLS mit mTLS-Zertifikaten