force http to https nginx letsencrypt reverse proxy DS918+

Status
Für weitere Antworten geschlossen.

logol01

Benutzer
Mitglied seit
22. Aug 2018
Beiträge
11
Punkte für Reaktionen
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:

mexx81

Benutzer
Mitglied seit
17. Dez 2013
Beiträge
597
Punkte für Reaktionen
0
Punkte
42
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.
 

logol01

Benutzer
Mitglied seit
22. Aug 2018
Beiträge
11
Punkte für Reaktionen
0
Punkte
1
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:

mexx81

Benutzer
Mitglied seit
17. Dez 2013
Beiträge
597
Punkte für Reaktionen
0
Punkte
42
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.
 

logol01

Benutzer
Mitglied seit
22. Aug 2018
Beiträge
11
Punkte für Reaktionen
0
Punkte
1
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 

 
 
  AdBlocker gefunden!

Du bist nicht hier, um Support für Adblocker zu erhalten. Dein Adblocker funktioniert bereits ;-)

Klar machen Adblocker einen guten Job, aber sie blockieren auch nützliche Funktionen.

Das Forum wird mit hohem technischen, zeitlichen und finanziellen Aufwand kostenfrei zur Verfügung gestellt. Wir zeigen keine offensive Werbung und bemühen uns um eine dezente Integration.

Bitte unterstütze dieses Forum, in dem du deinen Adblocker für diese Seite deaktivierst.

Du kannst uns auch über unseren Kaffeautomat einen Kaffe ausgeben oder ein PUR Abo abschließen und das Forum so werbefrei nutzen.

Vielen Dank für Deine Unterstützung!