Webproxy mit nginx für HTTP und X.509 Zertifikate
Version vom 26. März 2025, 15:04 Uhr von Thomas.will (Diskussion | Beiträge) (→Grundlegende Proxy-Konfiguration)
Webproxy mit Nginx für HTTP und X.509-Zertifikate
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
Debian/Ubuntu
- Nginx-Server installieren:
- sudo apt update
- sudo apt install nginx
- Dienst starten und aktivieren:
- sudo systemctl start nginx
- sudo systemctl enable nginx
RHEL/CentOS
- Nginx-Repository hinzufügen und installieren:
- sudo dnf install nginx
- Dienst starten und aktivieren:
- sudo systemctl start nginx
- sudo systemctl enable nginx
Grundlegende Proxy-Konfiguration
TLS/SSL mit X.509-Zertifikaten
- Selbstsigniertes Zertifikat erstellen:
- sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt
- Beispielkonfiguration mit TLS:
server {
listen 443 ssl;
server_name secure.example.com;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
location / {
proxy_pass http://backend.local;
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
Automatische SSL-Zertifikate mit Let's Encrypt
- Certbot installieren:
- sudo apt install certbot python3-certbot-nginx
- Zertifikat ausstellen:
- sudo certbot --nginx -d example.com
- Automatische Erneuerung prüfen:
- sudo certbot renew --dry-run
Zugriffsbeschränkung nach IP
- Nur bestimmten IPs Zugriff gewähren:
location / {
allow 192.168.1.100;
deny all;
proxy_pass http://backend.local;
}
Load Balancing mit Nginx
- Mehrere Backend-Server verteilen:
upstream backend_servers {
server backend1.local;
server backend2.local;
}
server {
listen 80;
server_name loadbalancer.example.com;
location / {
proxy_pass http://backend_servers;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Aufgaben
- Richte einen Reverse Proxy für einen internen Dienst ein.
- Konfiguriere TLS mit einem selbstsignierten Zertifikat.
- Implementiere eine Zugriffsbeschränkung nach IP-Adresse.
- Setze Load Balancing zwischen mehreren Backend-Servern um.
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.