Https: nach einloggen auf http weitergeleitet

Hallo liebe User,

Dem Englischen nicht so mächtig und im deutschen Bereich nichts dazu gefunden bleibt mir bei meiner frisch installierten nextcloud (12) folgendes Problem:

Ich gebe im Browser die Adresse meinecloud.de:451 ein. Diese leitet mich prima weiter auf meine fritzbox welche den Port auf einen nextcloudserver (Odroid) Port 443 weiterleitet. Im Browser steht nun auch brav https://meinecloud.de und die Einlogseite wird angezeigt. Nach Eingabe von Passwort und User gehts dann weiter und der browser geht zwar zum richtigen link aber nur http:// . Ergebnis ist ein Bad request das ich versuche eine https Seite per http anzusprechen. Also füge ich noch das s in der browserzeile ein und schwups bin ich in meiner cloud, alles funktioniert und sämtliche Seiten die ich in der cloud anwähle beginnen mit https://

Nun logge ich mich aus. Wieder ein Bad request da ich auf http geführt werde. Manuell https draus machen und ich werde ausgeloggt, allerdings wieder ein Bad request da ich auf die Loginseite http geleitet werde.

Das ganze läuft mit apache2 und php7. Habe ich da irgendwas in der config.php oder mit dem VirtualHost falsch gemacht?

Weiß leider nicht mehr weiter…:confused:

Hi!

Probier mal den folgenden Parameter in deiner config.php zu setzen:

‘overwrite.cli.url’ => ‘https://meinecloud.de:451’,

Der kursiv geschriebene Teil sollte die URL sein, unter welcher Du deine Nextcloud ansprechen möchtest.
Sollte das auch nicht funktionieren, müssen wir uns näher mit deiner Konfiguration auseinandersetzen :slight_smile:

Hola,

danke für Deine Antwort. Dort kann ich “https://meinecloud:451” oder auch “meinecloud:451” einsetzen. Beide Fälle funktionieren.

Ich habe zwischenzeitlich die /etc/apache2/sites-available/nextcloud.conf geändert. Seit dem funktioniert es. Diese besteht nun aus folgendem einfachen Inhalt:

Alias /nextcloud “/var/www/nextcloud/”

<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All

<IfModule mod_dav.c>
    Dav off
</IfModule>

SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud

<IfModule mod_headers.c>
     Header always set Strict-Transport-Security "max-age=15552000;$
</IfModule>

Damit funktionierts. Vorher sah sie lt. im Netz gefundenen Anweisung so aus:

<VirtualHost *:80>
ServerName meinecloud:451
Redirect permanent / https://meinecloud:451/

<VirtualHost *:443>
DocumentRoot "/var/www/nextcloud"
ServerName https://meinecloud:451

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <Directory /var/www/nextcloud/>
            Options +FollowSymlinks
            AllowOverride All

            <IfModule mod_dav.c>
                    Dav off
            </IfModule>

            SetEnv HOME /var/www/nextcloud
            SetEnv HTTPS_HOME /var/www/nextcloud
            Satisfy Any

            <IfModule mod_headers.c>
                    Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
            </IfModule>

    </Directory>

Ich habe leider zu wenig Ahnung um zu wissen was beim letzteren falsch ist, bzw. was beim aktuellen Inhalt noch fehlt.

Hi!

Du hast bei letzterem “namebased virtualhosts” definiert. Das ist ein Feature mit welchem Apache mehrere verschiedene Webseiten, zB. www.test.com und www.test.org usw. auf einer einzigen IP-Adresse hosten kann.

Die Zahl bei zB.

<VirtualHost *:80>

bezieht sich auf den Port auf den Apache lauschen soll. In deinem Fall hast Du die Ports 80 (normalerweise http) und 443 (normalerweise https) definiert, obwohl deine Nextcloud Instanz auf Port 451 lauscht (entnehme ich zumindest der von Dir geposteten URL.). Je nachdem wie dein Nextcloudserver geantwortet hat, hast Du damit deinen Browser quasi auf eine kleine “Redirect Reise” gesendet, die nicht ganz dort geendet hat, wo Du wolltest :slight_smile:

Wenn Du nur eine einzige Webseite hostest, dann kannst Du auf virtual hosts verzichten.

Weiterführende Seiten:
Aufbau einer URL: https://de.wikipedia.org/wiki/Uniform_Resource_Locator
Apache namebased virtualhosts: https://httpd.apache.org/docs/2.4/vhosts/name-based.html