Transparenter Reverse Proxy mit HTTPS möglich?

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

andisds

Benutzer
Registriert
06. Sep. 2013
Beiträge
99
Reaktionspunkte
2
Punkte
8
Hallo miteiander,
Ich hab ein Problem mit dem Reverse-Proxy. Ich möchte über einen Anschluss zwei Server hinter dem Router erreichen: Die DSM und die Fritz!Box. Dafür hab ich zwei Subdomains mit zwei DynDNS eintragen (IPv4 und IPv6):

DDNS_Strato.jpg

Um den Zugriff über einen HTTPS zu ermöglichen, hab ich den Reverse-Proxy über die DSM GUI konfiguriert:

Reverse_Proxy_Regel_Fritz.jpgReverse_Proxy_Regel_DSM.jpg

































(Der Zugriff aufs DSM über HTTPS läuft bei mir über den Port 2835 und nicht über 5001)


Anfragen über HTTP werden mittels einer .conf zurückgewiesen und auf HTTP umgeleitet:

Code:
#/etc/nginx/sites-enabled/redirect.conf
server {
    listen [::]:80;
    listen 80;
        server_name example.com
                subdomain.example.com
                subdomain1.example.com

return 301 https://$host$request_uri;
}

So weit so gut. Ich habe mittlerweile ein Wildcard-Zertifikat von Lets-Encrypt für die Domain und der Zugriff funktioniert einwandfrei.

Wenn ich jetzt aber auf die Fritz!Box zugreifen will, kommt die Anfrage über den Proxy, da dieser aber nicht transparent arbeitet läuft alles über die DSM-IP.

Nach einer kurzen Internet-Recherche ist es wohl so, dass der Reverse Proxy bei HTTPS-Verbindungen nicht transparent arbeitet. In der entsprechenden .conf wären aber die Parameter hinterlegt:

Code:
#/etc/nginx/app.d/server.ReverseProxy.conf
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name subdomain.example.com;

    ssl_certificate /usr/syno/etc/certificate/ReverseProxy/365f79ff-a0fb-4c08-a3f0-cd7353acf916/fullchain.pem;

    ssl_certificate_key /usr/syno/etc/certificate/ReverseProxy/365f79ff-a0fb-4c08-a3f0-cd7353acf916/privkey.pem;

    add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload" always;

    location / {

        proxy_connect_timeout 60;

        proxy_read_timeout 60;

        proxy_send_timeout 60;

        proxy_intercept_errors off;

        proxy_http_version 1.1;

        proxy_set_header        Host            $http_host;

        proxy_set_header        X-Real-IP            $remote_addr;

        proxy_set_header        X-Forwarded-For            $proxy_add_x_forwarded_for;

        proxy_set_header        X-Forwarded-Proto            $scheme;

        proxy_pass https://192.168.2.1:443;

    }

    error_page 403 404 500 502 503 504 @error_page;

    location @error_page {
        root /usr/syno/share/nginx;
        rewrite (.*) /error.html break;
        allow all;
    }

}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name subdomain.example.com;

    ssl_certificate /usr/syno/etc/certificate/ReverseProxy/6a795a8a-22f6-4842-91fb-27701c8c5da9/fullchain.pem;

    ssl_certificate_key /usr/syno/etc/certificate/ReverseProxy/6a795a8a-22f6-4842-91fb-27701c8c5da9/privkey.pem;

    add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload" always;

    location / {

        proxy_connect_timeout 60;

        proxy_read_timeout 60;

        proxy_send_timeout 60;

        proxy_intercept_errors off;

        proxy_http_version 1.1;

        proxy_set_header        Host            $http_host;

        proxy_set_header        X-Real-IP            $remote_addr;

        proxy_set_header        X-Forwarded-For            $proxy_add_x_forwarded_for;

        proxy_set_header        X-Forwarded-Proto            $scheme;

        proxy_pass https://localhost:2835;

    }

    error_page 403 404 500 502 503 504 @error_page;

    location @error_page {
        root /usr/syno/share/nginx;
        rewrite (.*) /error.html break;
        allow all;
    }

}

Gibt es irgendeine Möglichkeit den Proxy Transparent bei HTTPS Anfragen machen?
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat