force http to https nginx letsencrypt reverse proxy DS918+

  • 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.

logol01

Benutzer
Registriert
22. Aug. 2018
Beiträge
11
Reaktionspunkte
0
Punkte
1
Hallo zusammen,

ich habe eine Frage:.
Folgende Situation. Ich moechte nginx verwenden, um alle Anfragen die in der Synologie DS918+ eingehen von http Port 80 auf http Port 443 umgeleitet werden. Das geht ohne Probleme, wenn man nginx ein wenig anpasst.
Dazu habe ich in viele Foren gegoogelt und folgende herausgefunden:

im Verzeichnis
/usr/syno/share/nginx/WWWService.mustache

steht normalerweise folgendes:
Rich (BBCode):
server {
    listen 80 default_server{{#reuseport}} reuseport{{/reuseport}};
    listen [::]:80 default_server{{#reuseport}} reuseport{{/reuseport}};
    listen 443 default_server ssl{{#reuseport}} reuseport{{/reuseport}};
    listen [::]:443 default_server ssl{{#reuseport}} reuseport{{/reuseport}};

    server_name _;

Das muss man aendern in:

Rich (BBCode):
server {
    listen 80 default_server{{#reuseport}} reuseport{{/reuseport}};
    listen [::]:80 default_server{{#reuseport}} reuseport{{/reuseport}};

    server_name _;

    return 301 https://$host$request_uri;

    listen 443 default_server ssl{{#reuseport}} reuseport{{/reuseport}};
    listen [::]:443 default_server ssl{{#reuseport}} reuseport{{/reuseport}};

und dann gibt es noch die Datei:
/etc/nginx/nginx.conf
genau der selbe Eintrag muss bei der auch gemacht werden - sprich unter

Rich (BBCode):
server {
    listen 80 default_server{{#reuseport}} reuseport{{/reuseport}};
    listen [::]:80 default_server{{#reuseport}} reuseport{{/reuseport}};

    server_name _;

    return 301 https://$host$request_uri;

Danach muss man den nginx nochmals neustarten:

Rich (BBCode):
nginx -s reload

Funktioniert tadellos!!!

Nur leider kann ich nun keine neuen Zertifikate mehr unter "Systemsteuerung, Sicherheit, Zertifikat" mit Let's Encrypt erstellen, da genau dieser Dienst den Port 80 benoetigt.

Jetzt habe ich weitergesucht und folgendes gefunden.
Angeblich kann man in nginx eine Ausnahme definieren, wie genau fuer das erstellen von Let's Encrypt Zertifikaten dennoch erlaubt werden soll.
Leider bekomme ich das aber nicht hin.....

Dazu muss man im Verzeichnis /etc/nginx/ eine Datei anlegen mit dem Namen:
letsencrypt.conf
dort kopiert man folgenden Code rein:

Rich (BBCode):
location ^~ /.well-known/acme-challenge/ {
 default_type „text/plain“;
root /usr/syno/bin/syno-letsencrypt;
 allow all;
 }

und in den beiden vorher veraenderten Dateien ( /usr/syno/share/nginx/WWWService.mustache und /etc/nginx/nginx.conf) muesste Zeile mit include noch eingefuegt werden.

Rich (BBCode):
server_name _;
     include /etc/nginx/letsencrypt.conf
     return 301 https://$host$request_uri;

natuerlich danach noch:
Rich (BBCode):
nginx -s reload

und dann sollte alles laufen...... tut es aber nicht.

Wie gesagt http to https funktioniert tadellos - nur das ausstellen der Zertifikate geht nicht mehr.

Was mache ich falsch? wäre über eine Hilfe sehr dankbar!!!
 
Zuletzt bearbeitet:
Warum nutzt Du nicht die Option in der Systemsteuerung unter Netzwerk -> DSM-Einstellungen -> http-Verbindungen automatisch auf HTTPS umleiten

Damit wird DSM immer auf HTTPS umgeleitet. Klappt super.
 
Hallo,

Aber in diesem Fall wird doch nur DSM umgeleitet. Sprich die Anmeldung an die NAS Konsole - oder?
Bei mir fungiert das NAS zudem als Reverse Proxy für alle Anwendungen die ich per https von außen erreichen möchte.
Ich habe einige zusätzliche Programme auf meinem NAS und in meinem Netzwerk das ich von außen per https erreichen möchte. Die Zertifikate dafür stellt mir auch mein NAS mit Let's Encript zur Verfügung.

VG

Logol01
 
Zuletzt bearbeitet von einem Moderator:
Richtig und für die anderen virtual Hosts, die Du unter Anwendungen oder Reverse Proxy Konfigurierst kannst Du in der GUI HSTS einschalten. Also es ist definitiv heut zu tage nicht mehr notwendig für eine Zwangsumleitung auf HTTPS in den conf-Dateien rumzufummeln. Die GUI bietet überall die Zwangsumleitung an.
 
Du wirst es nicht glauben, aber ich habe teilweise noch Anwendungen, die HSTS nicht unterstützen.....
Deswegen habe ich echt viel Zeit investiert, das oben geschriebene zusammenzufummeln......
Nur diese NGINX Ausnahme, dass die nicht funktioniert macht mich fuxig....
Ich hoffe Du verstehst das, wenn man sich was in den Kopf gesetzt hat, es teilweise funktioniert - dann wird man verrückt....
Ich wäre echt sehr sehr dankbar, wenn jemand der sich damit auskennt da mal drüber schauen könnte :-).
 
Zuletzt bearbeitet von einem Moderator:
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