Nextcloud + Nginx Proxy Manager + 400 Bad Request


alexthunderstorm
Go to solution Solved by Enks,

Recommended Posts

Hallo,

ich habe schon im Forum gesucht und natürlich gegoogelt, bekomme aber entweder Infos zu zu "400 Bad Request The plain HTTP request", ohne Nextcloud Bezug oder Bezug ohne Unraid und bin nicht wirklich linuxaffin, um das adaptieren zu können.

Ich habe auf meinem Unraid den NPM, Nextcloud von linuxserver und MariaDB als Docker laufen. Ich habe erfolgreich einen Bit-/Vaultwardenserver aufgesetzt, der über meine subdomain1.duckdns.org läuft. Das gleiche versuche ich jetzt für Nextcloud. Ich hab mich so ziemlich an dem SpaceinvaderOne Video https://www.youtube.com/watch?v=id4GcVZ5qBA orientiert. Habe aber keine eigene Domain, und daher wollte ich es mit duckdns versuchen. Der Nginx leitet mich auch von meiner internen IP auf https://subdomain2.duckdns.org weiter. Dort erhalte ich aber den Fehler " 400 Bad Request: The plain HTTP request was sent to HTTPS port - nginx". Ich habe in keiner Nginx config file oä rumgeschrieben, sondern den proxy über das webui erstellt. Dort habe ich "Force SSL" und "HTTP/2-Support" an. Die http/https Ports für NPM sind natürlich im Router freigegeben (Vaultwarden funktioniert ja). Das ist meine angepasste nexcloud config.php:
 

<?php
$CONFIG = array (
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'datadirectory' => '/data',
  'instanceid' => 'ocmx1uic1dwi',
  'passwordsalt' => '........',
  'secret' => '.......',
  'trusted_domains' => 
  array (
    0 => '192.168.178.88:5360',
	1 => 'subdomain2.duckdns.org',
  ),
  'trusted_proxies' => ['192.168.178.88'],
  'dbtype' => 'mysql',
  'version' => '23.0.0.10',
  'overwrite.cli.url' => 'https://subdomain2.duckdns.org',
  'overwritehost' => 'subdomain2.duckdns.org',
  'overwriteprotocol' => 'https',
  'dbname' => 'nextcloud',
  'dbhost' => '192.168.178.88:3306',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => 'nextcloud',
  'dbpassword' => '.....',
  'installed' => true,
);


Was übersehe ich hier?

Braucht ihr noch mehr Infos?

Grüße!

EDIT: Ich lasse den NPM sowie Nextcloud im Netzwerk "proxynet" laufen, falls das relevant ist.

Edited by alexthunderstorm
Link to comment
22 minutes ago, alexthunderstorm said:

EDIT: Ich lasse den NPM sowie Nextcloud im Netzwerk "proxynet" laufen, falls das relevant ist.

Welches im Prinzip eine Bridge ist mit der Standard Serveradresse und alle Docker laufen mit eigenen Ports oder ist dein Proxynet ein custom:br0?

 

Screenshots wie der nginx host eingerichtet ist wären nicht verkehrt.

Grundsätzlich gehört im Host vorne neben die IP aber eine 80 rein. Nicht 443 oder wie spaceinvader das immer macht 180 und nicht 1443

Überhaupt so ne kurze übersicht über Deine Docker in dieser Art: 

image.png.4dccd2d7cd5fb601bba51e44fc92da43.png

könnte schon mal helfen.

Solange Du Deine richtige IP und Deine Domain nicht zeigst kann ja nichts passieren.

 

26 minutes ago, alexthunderstorm said:
 array (
    0 => '192.168.178.88:5360',

Was ist das?

 

 

  • Like 1
Link to comment
12 hours ago, alexthunderstorm said:

ok - exakt bei Minute 3.00 kommt der entscheidende Punkt, dass ich im Nginx WebUI bei Scheme "https" wählen muss, anstatt  - wie ich es tat - "http".

Du solltest darüber nachdenken den Offiziellen Nextcloud Container zu verwenden. Der zwingt dich nicht zu https, was lokal zwischen NPM und Nextcloud eh Unsinn ist.

 

 

 

 

Link to comment
8 hours ago, mgutt said:

Du solltest darüber nachdenken den Offiziellen Nextcloud Container zu verwenden. Der zwingt dich nicht zu https, was lokal zwischen NPM und Nextcloud eh Unsinn ist.

 

 

Ich hatte die offiziellen MariaDB und Nextcloud Container installiert. Damit gabs aber irgendwelche Fehler, bin dann auf die von linuxserver umgestiegen, damit hatte es auf Anhieb geklappt. Ist das denn schlimm, dass es nur über https geht? Bin erstmal froh, dass das überhaupt läuft^^

Link to comment
  • 2 months later...
On 2/13/2022 at 6:17 PM, alexthunderstorm said:

Damit gabs aber irgendwelche Fehler,

Das ist wenig hilfreich.

 

On 2/13/2022 at 6:17 PM, alexthunderstorm said:

Ist das denn schlimm, dass es nur über https geht?

https verursacht minimal mehr CPU Last. Vom Prinzip zu vernachlässigen. Mir wäre es aber wichtiger das offizielle Produkt zu verwenden.

Link to comment
  • 6 months later...

Guten Morgen zusammen,

 

ich kämpfe im Moment auch noch mit der Thematik  mit dem Bad Request wenn ich über http:// komme

 

400 Bad Request

The plain HTTP request was sent to HTTPS port

nginx

 

auch kriege ich die Sicherheitsmeldungen nicht gefixt:

 

Der "Strict-Transport-Security“-HTTP-Header ist nicht auf mindestens "15552000“ Sekunden eingestellt. Für mehr Sicherheit wird das Aktivieren von HSTS empfohlen, wie es in den Sicherheitshinweisen ↗ erläutert ist.

 

Dein Webserver ist nicht richtig konfiguriert, um "/.well-known/webfinger" aufzulösen. Weitere Informationen hierzu findest du in unserer Dokumentation ↗.

Dein Webserver ist nicht richtig konfiguriert, um "/.well-known/nodeinfo" aufzulösen. Weitere Informationen hierzu findest du in unserer Dokumentation ↗.

Dein Webserver ist nicht richtig konfiguriert, um "/.well-known/caldav" aufzulösen. Weitere Informationen hierzu findest du in unserer Dokumentation ↗.

Dein Webserver ist nicht richtig konfiguriert, um "/.well-known/carddav" aufzulösen. Weitere Informationen hierzu findest du in unserer Dokumentation ↗.

 

Installiert sind folgende Pakete:

 

nextcloud               linuxserver's Repository


MariaDB-Official        mgutts Repository

 

Mir ist nicht ganz klar wie ich den NGINX sauber konfigurieren kann und was ich wo eintragen soll.

 

Zudem komme ich über den Google Chrome bei einem Anmeldeversuch in eine redirection ....

Da komme ich leider auch nicht weiter.

 

VG

 

Sebastian

 

 

Link to comment
23 minutes ago, Sebastian Grahamer said:

The plain HTTP request was sent to HTTPS port

nginx

Naja das ist eigentlich selbsterklärend. Du öffnest die Seite über http, aber der Traffic landet auf einem https Port.

 

24 minutes ago, Sebastian Grahamer said:

auch kriege ich die Sicherheitsmeldungen nicht gefixt:

 

 

Link to comment

Bin gerade dabei 🙂

 

in die ssl.conf unter /mnt/user/appdata/nextcloud/nginx/

 

# HSTS (ngx_http_headers_module is required) (63072000 seconds)
add_header Strict-Transport-Security "max-age=63072000" always;

 

in die default.conf unter /mnt/user/appdata/nextcloud/nginx/site-confs

 

 

location ^~ /.well-known {
        # The rules in this block are an adaptation of the rules
        # in `.htaccess` that concern `/.well-known`.

        location = /.well-known/carddav { return 301 /remote.php/dav/; }
        location = /.well-known/caldav  { return 301 /remote.php/dav/; }

 

und die Geschichte mit der Redirection über Chrome habe ich noch hinten angestellt ...

 

VG
 

Sebastian

Link to comment
2 hours ago, Sebastian Grahamer said:

auch kriege ich die Sicherheitsmeldungen nicht gefixt:

 

Der "Strict-Transport-Security“-HTTP-Header ist nicht auf mindestens "15552000“ Sekunden eingestellt. Für mehr Sicherheit wird das Aktivieren von HSTS empfohlen, wie es in den Sicherheitshinweisen ↗ erläutert ist.

 

Installiert sind folgende Pakete:

 

nextcloud               linuxserver's Repository


MariaDB-Official        mgutts Repository

 

Mir ist nicht ganz klar wie ich den NGINX sauber konfigurieren kann und was ich wo eintragen soll.

 

Das Problem hatte ich auch. Wenn Nextcloud von Linuxserver verwendet wird, muss im NPM als Scheme https eingestellt sein.

In diesem Post ist auch ein Video dazu verlinkt:

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.