Synology Q&A 2021 Apache Webserver von außen nur ohne SSL erreichbar

monstar-x

Lieutenant
Registriert
Aug. 2007
Beiträge
545
Das Verzeichnis /clouddaten ist über den Webserver Apache 2.4 erreichbar, allerdings nur per http und nicht https.

Ich möchte das Verzeichnis [ /clouddaten ] auf der Synology für externen Zugriff über das Internet freigeben, das Verzeichnis soll per https:// zu erreichen sein und zwar mit dem Apache Webbrowser, da dort Nextcloud läuft.

- Wird die URL server.example.com aufgerufen, ist die Zielseite per https:// verschlüsselt.

- Wird die URL server.example.com/clouddaten aufgerufen, ist gibt es einen Fehler:
"Es tut uns Leid, die von Ihnen gesuchte Seite konnte nicht gefunden werden. © 2021 Synology Inc."

Es scheint so, dass der Standard NGINX Server immer für https anfragen verwendet wird. Den rufe ich die gleiche URL, ohne https auf mit http://server.example.com/clouddaten erscheinen die gewünschten Dateien über den Apache Webserver.

Über eine Lösung wäre ich mich freuen.



PS: Danke dass ihr so tolle Hardware+Software baut.
 
Ich weiß, das geht um das Q&A, aber deine Frage ist technisch in meinen Augen obsolet.
Denn der Fehler liegt bei dir. Ich hatte früher meine NC per Apache 2.4 der DS HTTPS-only (force redirekt) laufen.
Der Apache alleine reicht ja nicht, du brauchst auch das Paket Webstation und musst darüber PHP und Webserver konfigurieren. Hast du dort Port 80 und 443 richtig konfiguriert?

Ich würde aber grundsätzlich wenn möglich bei Nextcloud zu Docker raten (nutz die linuxserver.io Versionen). Besser gepatche Webserve, PHP und DB-Server Versionen, als bei Synlogy. Zudem war die Integration von PHP in DSM nicht so pralle. Da NC mit den CLI Befehlen php intern arbeitet, aber darunter stets dann irgendwann NC inkompatible Version (5.6) aufgerufen wurde. Das Anpassen des Alias wurde irgendwann dann wieder überschrieben, also keine dauerhafte Lösung.

Zusätzlich empfehle ich die von Synolog intergrierte letsentcrypt zu nutzen. Das Zertifikat erneuert sich selbstätig alle 3 Monate neu.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: monstar-x
Kontrolliere dein Router/Firewall/Nat -> Port 80 kannst du "sperren", wenn du nur HTTPS möchtest, aber achtung wenn du diesen sperrst, kannst du auch kein Force Redirect zu https machen (wenn der User statt https://yourdomain.tld aufruft sondern http. Mit der richtigen Config, kann ein HTTP user automatisch auf HTTPS forciert werden.
 
  • Gefällt mir
Reaktionen: monstar-x
Danke für den Hinweis mit Docker, werde ich in betracht ziehen.

Die Ports 80 und 443 sind Router freigegeben.

Wie gesagt, alles was per https rein kommt, wird von NGINX verarbeitet, sieht man hier im nginx/error.log

2021/12/10 10:00:41 [error] 24950#24950: 252690 "/usr/syno/synoman/clouddaten/index.cgi" is not found (2: No such file or directory), client: 9...*, server: _, request: "GET /clouddaten/ HTTP/2.0", host: "server.example.de"

Ich bin gerne für Ratschläge, Hinweise offen :-)
 
monstar-x schrieb:
Wie gesagt, alles was per https rein kommt, wird von NGINX verarbeitet, sieht man hier im nginx/error.log
Ist bei DSM normal. Reverse Proxy eben. Beim Webupdater ein Problem, weil es zum Gateway Timeoute (HTTP 50x) kommt, weil zu lange auf dem Bildschirm "nichts" sichtbares passiert. Update läuft weiter, aber man sieht es nicht und wird aus dem Updater geworfen.
Mit Docker ist das Problem weg, auch wenn man hier ebenfalls den nginx als Reverse Proxy nutzen muss.

Ohne nginx wäre auch die Nutzung der SSL-Zertifikate kompliziert und nicht zentral möglich, weil man sonst die für alle Server einzeln angeben müsste.
 
conf_t schrieb:
Ohne nginx wäre auch die Nutzung der SSL-Zertifikate kompliziert und nicht zentral möglich, weil man sonst die für alle Server einzeln angeben müsste.
Wird auch schwerer ohne Reverse Proxy mehr als eine Webseite in das Internet zu stellen, wenn man nur dyndns hat und keine Fixen IP's etc :)
 
Hmmm, wäre eine Möglichkeit, müsste nur einfach und "sicher", die user samt daten in den Docker migrieren.
Kenny [CH] schrieb:
Wird auch schwerer ohne Reverse Proxy mehr als eine Webseite in das Internet zu stellen, wenn man nur dyndns hat und keine Fixen IP's etc :)

Fixe IP ist gegen Aufpreis von 10€ pro Monat zu bekommen (das sollte nicht das Problem sein) :)

conf_t schrieb:
Ist bei DSM normal. Reverse Proxy eben.
Mit Docker ist das Problem weg, auch wenn man hier ebenfalls den nginx als Reverse Proxy nutzen muss.

Hmm wäre eine Überlegung Wert, allerdings muss die migration der bereits vorhanden user+daten in den Docker Container, sicher funktionieren. Aber das dürfte ja nicht ein zu großes Problem sein.
 
Grobes Vorgehen:
Alles Backuppen (Daten und Datenbank)
Dockerstrukturen erstellen inkl. Funktionstest, also Nextcloud muss laufen in LAN
Dann testweise mal die Webstation abschalten und den Link im Reversproxy auf den Dockercontainer umleiten
Dann wieder zurück schwenken auf die alte Cloud.
Datenbank exportieren (PHPmyadmin oder mysql Befehl)
Dateien von NC alt nach Docker neu kopieren.
einen PHPmyadmin Docker einrichten und mit dem maria-dbDocker verbinden und die Datenbank einlesen.
Alternativ die Datenbank im maria-db-Docker schieben und dort einlesen
Wie man shared-Verzeichnisse erstellt zeigen die Howtos.
Leider hat keines der Howtos zu 100 Prozent bei mir funktioniert. Ich musste mir meine Lösung aus verschiedenen Howto zusammen suchen.

Ich habe meine 8 Jahre alte Nextcloud (zuvor Owncloud), angefangen auf einer DS214, dann 718+ auf Docker diesen Sommer migriert.
 
  • Gefällt mir
Reaktionen: monstar-x
Hallo @monstar-x 👋,

aus meiner Erfahrung heraus kann ich dir sagen, das dein Verzeichnis auch via HTTPS über den Apache erreichbar sein sollte. Was aber genau nun das Problem ist, müsstest du einmal mit unseren Kollegen vom Support checken. Diese müssten prüfen, ob der DSM nginx unter Port 443 dir wirklich dazwischen funkt und was hier als Alternative gemacht werden kann. Dazu muss deine Web Station Konfiguration geprüft werden.
Dazu melde (bzw. registriere dich erst) auf unserer Webseite unter https://account.synology.com/ an und eröffne unter dem Reiter "Support" dein Ticket mit möglichst vielen Details, wie Screenshots, logfiles usw.

Grundsätzlich wäre es sonst auch möglich, für den Apache intern andere Ports zu vergeben z.B. (8080 und 444) und im Router (zumindest die Fritzbox kann dies) als interne Ports die beiden oben genannten zu wählen und als externe Ports dann 80/443. Die Ports werden damit "umgebogen", das nennt man Port Address Translation, kurz PAT.

Ich wünsche dir noch besinnliche Feiertage und einen guten Übergang ins neue Jahr!

Viele liebe Grüße,
Martin von Synology
 
  • Gefällt mir
Reaktionen: monstar-x
Zurück
Oben