Anleitung: nextcloud mit nginx reverse proxy und LetsEncrypt auf Docker

  • Hallo zusammen... Zuerst einmal danke für die Anleitung. Bei mir hat sie super geklappt. Auch nextcloud läuft jetzt bei mir in der Version 17 mit einem ordentlichen Zertifikat. Es gibt für mich nur 2 Probleme. Zum einen wird mir angezeigt, dass in der Nextcloud ein Update vorliegt. Öffne ich allerdings den Updater, kommt sofort eine Fehlermeldung von NGinx mit 404 Seite nicht vorhanden. Die Frage ist für mich, wo ich da noch eine Einstellung vornehmen muss.

    Das andere Problem ist, dass mir in dem Sicherheitshinweis der Nextcloud folgende Meldungen ausgegeben werden:

    Code
    Der „X-Frame-Options“-HTTP-Header ist nicht so konfiguriert, dass er „SAMEORIGIN“ entspricht. Dies ist ein potentielles Sicherheitsrisiko und es wird empfohlen, diese Einstellung zu ändern.
    Code
    Der "Referrer-Policy" HTTP-Header ist nicht gesetzt auf "no-referrer", "no-referrer-when-downgrade", "strict-origin", "strict-origin-when-cross-origin" oder "same-origin". Dadurch können Verweis-Informationen preisgegeben werden. Siehe die W3C-Empfehlung.


    Ich habe versucht, über Google schlau zu werden, aber ich bin da leider noch zu unerfahren anscheinend, um die Probleme zu beseitigen... hat da jemand eine Idee?

  • Updates über die Updatefunktion von NC kannst du vergessen. Updates werden über den Container durchgeführt, d.h., du "schmeißt" den aktuellen Container weg und lädst ihn neu. Das war es.


    Die X-Frame option müssten in nginx.conf stehen (hoffe, da liege ich richtig).

  • ja die liegt da auch. zumindest, wenn ich nach dem Beispiel in der zip datei gehe im Web-Verzeichnis. Nur leider überschreibt sich die Datei auch bei jedem neustart des Containers, habe ich festgestellt.

  • Sind denn dort folgende Zeilen enthalten?


    Code
            add_header X-Content-Type-Options nosniff;
            add_header X-XSS-Protection "1; mode=block";
            add_header X-Robots-Tag none;
            add_header X-Download-Options noopen;
            add_header X-Permitted-Cross-Domain-Policies none;
  • Nein in der standard-conf steht folgendes

    nur die überschreibt sich halt immer wieder oder ich mache da was falsch

  • Hallo, melde mich hier weil bis jetzt Nextcloud laut ariaci im Docker hatte, nun nach dem Update ist aus, geht nichts mehr.

    Da ich sowieso neue Installation machen muss, habe mich für den Model entschieden.

    Installiert war schnell leider nicht alles läuft so wie ich es brauche.

    Proxy Server hat bei Installation schon error gemeldet und Collabora geht auch nicht.

    Einträge habe ich geändert:

    - <<meinPasswort>> > Master-PW für mariaDB
    Passwort eingetragen.
    - cloud.example.com > Subdomain-Name
    Da habe ich 'xxxx@MyFRITZ.net' eingetragen.
    - <<name>>@example.com > User für LetsEncrypt-Benachrichtigungen

    Name eingetragen @example.com

    Die Ports sind frei.

    Was kann ich da machen das ich die HTTPS Verbindung habe.


    Kann mir jemand sagen wie ich „docker-compose„ in der Container Station wieder löschen kann. Komme nicht weiter die Docker lassen sich auf konventionelle Weise nicht beenden.
    Wenn mir putty dann bitte um genaue Befehle zum beenden und löschen.

    Einmal editiert, zuletzt von Jogis ()

  • zinnik

    Hast du die Zertifikatserstellung durch letsencrypt jetzt hinbekommen? Ich habe meine docker-compose leicht abgeändert.


    Jogis

    Über docker-compose stop werden die Container angehalten. Mit docker-compose down werden die Container angehalten und anschließend gelöscht. Natürlich alles über putty.

  • eol25 Ich vermute das Du die nginx.conf im Container anpasst/änderst. Das ist falsch. Um eine dauerhafte Änderung vorzunehmen, mußt Du die nginx.conf im Verzeichnis "web" nehmen. Wenn Du nach der Anleitung in diesem Thread vorgegangen bist hast Du doch auf deinem NAS ein Unterverzeichnis ./Docker-Configs/nextcloud/, oder? In dem sollten sich die Verzeichnisse app, proxy und web befinden.


    Wenn Du dann die Zeilen von RainerBegeistert in der nginx.conf einträgst und alles neu startest bekommst Du keine Fehlermeldung mehr in der Nextcloud und ein A+ auf der Security-Seite.

  • Hallo!

    Ich hab jetzt mal (na - no) alles mal nach Anleitung gemacht. Ich bekomme zurzeit noch einen 500er wenn ich auf https://mysubdomain.xxyy.com gehen möchte. Und dort steht eben nur

    Code
    "500 Internal Server Error" ngingx/1.17.5


    Ein 500er kann alles bedeuten. Gibt's irgendwo z.B. ein log oder etwas das ich u.U. noch kontrollieren / aktivieren kann? Wie kann ich z.B. das Zertifikat überprüfen. Wenn ich in unter Docker-Volumes/nextcloud/ngings-certs gehe sieht mal auf den ersten Blick alles recht gut aus. Aber das ist natürlich der Blick eines Laien :(


    Und eine andere Frage: wie kann ich über die lokale IP auf nextcloud zugreifen. Mein Router mag das nicht, wenn ich über die subdomain (raus und wieder rein) gehe.


    thx

    ©a-x-i

  • Hi,


    bin dabei die Beschränkung der Uploadgröße von 2MB anzupassen.


    Habe die uploadsize.conf entsprechend angepasst.

    Dies allein hat nicht geholfen.


    Nun verstehe ich in Beitrag #107 folgendes nicht:

    php.ini-development unter /usr/local/etc/php eingestellt auf post_max_size = 20G und upload_max_filesize = 20G

  • Du solltest die Datei eigentlich nicht anpassen, sondern eher in das Verzeichnis nginx/conf.d/ einfügen? das hast du gemacht?


    I, übrigen ist aktuell die neue Nextcloud 18 draußen... Wenn du noch die 17 installiert hast, überlege nochmal ob du nicht noch einmal neu machst mit der frischen Version

  • Hi,
    hab ich es irgendwo überlesen oder gibt es noch keine Anleitung zur Konfiguration für Nextcloud und NGinx (PHP Ready) V1.17.3.0?

    M.

  • Habs mir mit nem Bekannten zusammengereimt.
    Da ich die Sicherheit der Lösung noch nicht beurteilen kann, werde ich die nginx.conf nur auf Nachfrage herausgeben.
    Wäre aber schön, wenn da mal jemand drauf schauen möchte.

    M.

  • Hallo zusammen,

    vielen Dank an xgadscu für die gute Anleitung. Nextcloud läuft jetzt bei mir inklusive Collabora.

    Ich habe an zwei stellen Probleme gehabt, und hoffe vielleicht einigen mit meinen Erkenntnissen zu helfen.


    Die Beschränkung der Uploadgröße von 2MB konnte ich durch ändern der php.ini-development beheben, wie CyberMicha geschrieben hat.

    php.ini-development unter /usr/local/etc/php eingestellt auf post_max_size = 20G und upload_max_filesize = 20G

    Ich hatte aber Probleme die php.ini-development bzw. das Verzeichnis /usr/local/etc/php zu finden. Per Remotesuche auf dem NAS habe ich die php.ini-development in folgendem Verzeichnis gefunden:

    /share/CACHEDEV3_DATA/Container/container-station-data/lib/docker/overlay2/f03d7be9ded8d3aa8952b8e203c7b324b498fde4d4c661cad89f15bd294e5f94/diff/usr/local/etc/php/


    Der Sicherheitsscan unter https://scan.nextcloud.com hat mir zunächst noch Warnungen wegen der X-Frame-Options und der Referrer-Policy angezeigt.

    Durch ergänzen der folgenden Zeilen in den beiden nginx.conf Dateien konnte ich die Warnungen eleminieren.

    Code
    add_header X-Frame-Options "SAMEORIGIN";
    add_header Referrer-Policy no-referrer;

    Ich habe die Zeilen jeweils an beiden Stellen mit den Header Anpassungen ergänzt!


    Der Sicherheitsscan gibt mir noch kein A+, wegen einer Meldung bezüglich des Host-Prefix:

    Zitat von Nextcloud Security Scan

    The __Host prefix mitigates cookie injection vulnerabilities within potential third-party software sharing the same second level domain. It is an additional hardening on top of 'normal' same-site cookies.

    Meine Nextcloud Installation ist über cloud.meinedomain.com erreichbar.


    Ich hätte jetzt noch zwei Fragen:

    Fehlt bei mir noch irgendein Volume, weil die php.ini-development in einem Unterordner vom Standardordner container-station-data liegt?

    Wo müsste ich noch Ergänzungen machen, um ein A+ im Security Scan zu erhalten?

  • Hallo zusammen,


    durch Anpassung der config.php im Ornder config des html-Volumes habe ich jetzt ein A+ im Security Scan und die Meldung wegen des Host prefix ist erledigt.

    Folgene Zeile habe ich noch in der Datei ergänzt:

    'overwriteprotocol' => 'https',


    Siehe auch hier

    Do you run nextcloud behind a reverse proxy? I am using traefik and got an A+ after adding the following line to config/config.php:

    'overwriteprotocol' => 'https',

    Background:


    The secure (https) connection is terminated at the proxy and nextcloud only sees an unencrypted (http) connection coming from the proxy. As you can read in Security: __Host-Prefix cookie setting? 43 nextcloud needs a secure (=https) connection to use __Host-cookies. So you have to overwrite 17 the connection typ.

    Hope that helps!

  • Hat eigentlich jemand die nextcloud mit coturn laufen? Ich versuche das gerade bei mir zum laufen zu bekommen, jedoch scheine ich mit den Einstellungen in dem docker-compose etwas falsch zu machen.

  • Hallo zusammen. Ich habe aktuell das Problem bekommen, dass mein Zertifikat für letsencrypt nicht aktualisiert wird und abgelaufen ist. Kann mir da jemand behilflich sein?

  • Die Ports 443 und 80 sind beide offen ja


    bei nginx ist folgender Fehler:

    Code
    2020/04/29 05:51:26 [error] 98#98: OCSP response not successful (6: unauthorized) while requesting certificate status, responder: ocsp.int-x3.letsencrypt.org, peer: 92.122.245.144:80, certificate: "/etc/nginx/certs/meine.site.crt"
    
    2020/04/29 05:51:29 [crit] 98#98: *8 stat() "/usr/share/nginx/html/.well-known/acme-challenge/m1Vus7QcobWmK_QsBMvk3E5dhof_ZjP9F0FoHhD0UM8" failed (13: Permission denied), client: 52.28.236.88, server: meine.site, request: "GET /.well-known/acme-challenge/m1Vus7QcobWmK_QsBMvk3E5dhof_ZjP9F0FoHhD0UM8 HTTP/1.1", host: "meine.site"

    beim starten des container ist folgendes zu sehen:

  • Das sieht danach aus, dass deine Ports nicht offen sind. Laut Meldung ist die Domain nicht erreichbar. Gibt es einen nginxproxy, wenn ja, läuft der korrekt?


    Um die Ports zu testen, kannst du auch die Seite Portcheck von Heise.de nutzen. Dann kannst du da zumindest einen Haken machen.