Webproxy mit nginx für HTTP und X.509 Zertifikate
Version vom 26. März 2026, 15:01 Uhr von Thomas.will (Diskussion | Beiträge) (→TLS/SSL mit X.509-Zertifikaten)
Webproxy mit Nginx für HTTP und X.509-Zertifikate
Rocky Template klonen
netz: DMZ name: revproxy.it2XX.int ip: 10.88.2XX.41 gw: 10.88.2XX.1 nameserver: 10.88.2XX.21
Einführung
- Nginx kann als Reverse Proxy für HTTP- und HTTPS-Dienste verwendet werden.
- X.509-Zertifikate ermöglichen die TLS-Verschlüsselung für sichere Verbindungen.
- Der Proxy kann Anfragen an interne Webserver weiterleiten und dabei SSL/TLS offloaden.
Installation von Nginx
RHEL/Rocky
Nginx-Repository hinzufügen und installieren:
- sudo dnf install nginx
Dienst starten und aktivieren:
- sudo systemctl start nginx
- sudo systemctl enable nginx
Firewall konfigurieren
- HTTPS (Port 443) freigeben
- firewall-cmd --permanent --add-service=https
- HTTP (Port 80) freigeben – z. B. für Weiterleitungen
- firewall-cmd --permanent --add-service=http
- Firewall neu laden
- firewall-cmd --reload
- Aktive Regeln anzeigen
- firewall-cmd --list-all
Eine Webseite vorab um zu testen ob unser System soweit geht
- cat /etc/nginx/conf.d/revproxy.int.conf
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name revproxy.it213.int;
root /usr/share/nginx/html;
index index.html index.htm;
ssl_certificate /etc/ssl/own.crt;
ssl_certificate_key /etc/ssl/own.key;
location / {
try_files $uri $uri/ =404;
}
}
- Neu starten
- systemctl restart nginx
Grundlegende Proxy-Konfiguration
TLS/SSL mit X.509-Zertifikaten
server {
listen 443 ssl;
server_name revproxy.it2XX.int;
ssl_certificate /etc/ssl/own.crt;
ssl_certificate_key /etc/ssl/own.key;
location / {
proxy_pass https://mail.it2XX.int;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
- Nginx neu laden
- sudo systemctl reload nginx
Bei Problemen
- ausearch -m avc -ts recent
----
time->Thu Mar 26 15:50:59 2026
type=PROCTITLE msg=audit(1774536659.561:435): proctitle=6E67696E783A20776F726B65722070726F63657373
type=SYSCALL msg=audit(1774536659.561:435): arch=c000003e syscall=42 success=no exit=-13 a0=d a1=5578211d9fb8 a2=10 a3=7ffcb154f60c items=0 ppid=33457 pid=33458 auid=4294967295 uid=985 gid=984 euid=985 suid=985 fsuid=985 egid=984 sgid=984 fsgid=984 tty=(none) ses=4294967295 comm="nginx" exe="/usr/sbin/nginx" subj=system_u:system_r:httpd_t:s0 key=(null)
type=AVC msg=audit(1774536659.561:435): avc: denied { name_connect } for pid=33458 comm="nginx" dest=443 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:http_port_t:s0 tclass=tcp_socket permissive=0
----
time->Thu Mar 26 15:55:25 2026
type=PROCTITLE msg=audit(1774536925.290:444): proctitle=6E67696E783A20776F726B65722070726F63657373
type=SYSCALL msg=audit(1774536925.290:444): arch=c000003e syscall=42 success=no exit=-13 a0=d a1=561646091fb8 a2=10 a3=7ffd50ff423c items=0 ppid=33528 pid=33529 auid=4294967295 uid=985 gid=984 euid=985 suid=985 fsuid=985 egid=984 sgid=984 fsgid=984 tty=(none) ses=4294967295 comm="nginx" exe="/usr/sbin/nginx" subj=system_u:system_r:httpd_t:s0 key=(null)
type=AVC msg=audit(1774536925.290:444): avc: denied { name_connect } for pid=33529 comm="nginx" dest=443 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:http_port_t:s0 tclass=tcp_socket permissive=0
- nginx Netzwerk Zugriff freischalten
- setsebool -P httpd_can_network_connect 1
Fazit
- Nginx ist ein leistungsfähiger Webproxy für HTTP und HTTPS.
- TLS-Zertifikate bieten Sicherheit und Vertrauenswürdigkeit.
- Load Balancing und Zugriffsbeschränkungen erhöhen die Skalierbarkeit und Sicherheit.