Webproxy mit nginx für HTTP und X.509 Zertifikate: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 28: Zeile 28:
 
server {
 
server {
 
     listen 443 ssl;
 
     listen 443 ssl;
     server_name secure.example.com;
+
     server_name rev.it2XX.int;
  
     ssl_certificate /etc/nginx/ssl/nginx.crt;
+
     ssl_certificate /etc/ssl/own.crt;
     ssl_certificate_key /etc/nginx/ssl/nginx.key;
+
     ssl_certificate_key /etc/ssl/own.key;
  
 
     location / {
 
     location / {
         proxy_pass http://backend.local;
+
         proxy_pass https://mail.it2XX.int;
 
         proxy_set_header Host $host;
 
         proxy_set_header Host $host;
 
         proxy_set_header X-Real-IP $remote_addr;
 
         proxy_set_header X-Real-IP $remote_addr;

Version vom 26. März 2026, 13:32 Uhr

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/RockeCentOS

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

server {
    listen 443 ssl;
    server_name rev.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

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.