Seite 1 von 1

SSL Forcierung

Verfasst: 12. Nov 2016, 16:10
von Offe
Ich sichere meine Admidio Installation mit https. In der config.php ist die URL ($g_root_path) auch mit https angegeben. Bei meinen 3.1.x Installation wird ein Redirect durch diese Einstellung von http --> https gemacht, wenn jemand versucht mit http auf Admidio zuzugreifen. In der Testinstallation 3.2 Beta 1 mit aktuellem Commit wird dieser Redirect nicht durchgeführt und so wird die Seite mit http aufgerufen.

Gruß Offe

Re: SSL Forcierung

Verfasst: 12. Nov 2016, 16:38
von XimeX
Hallo Offe,

In 3.2 wird die variabel nicht mehr verwendet. Bleibt aber zur rückwärtscompatibilität vorhanden.
Siehe hier: https://www.admidio.org/dokuwiki/doku.p ... precations
The config property $g_root_path is deprecated and replaced with new constant ADMIDIO_URL. There are some more new helpful constants defined.
Für die ganzen Konstanten schau in der constants.php nach.

Man könnte aber eine funktion einbauen mit einem config parameter ob jeder http request auf https weitergeleitet werden soll. Jedoch ist das normalerweise nicht der Job einer PHP Webseite sondern die des Webservers (apache, nginx, ...)
Hast schon mal in den einstellungen deines providers nachgesehen ob es da eine option gibt für weiterleitung von http auf https?

Re: SSL Forcierung

Verfasst: 12. Nov 2016, 17:03
von Offe
Verstehe ich das richtig, dass mit 3.1.x über die Variable eine Forcierung von SSL möglich war, aber mit 3.2.x und dem Wegfall der Variablen nun keine weitere Forcierung mehr möglich ist und dies dann entsprechend im Webserver abgehandelt werden muss? Ich habe dies nun mittels einer .htaccess-Datei gelöst, diese macht für mich nun den Redirect. Persönlich fand ich es eine super Lösung, unabhängig von großen Webserverkenntnissen SSL durch das Setzen der Variablen einfach zu aktivieren. Ich fände es daher auch super, wenn ein, wie von dir beschriebener, Config-Parameter eingeführt wird.

Gruß Offe

Re: SSL Forcierung

Verfasst: 13. Nov 2016, 01:21
von XimeX
Die Variable "$g_root_path" war eingentlich nur ein Workaround weil es nicht so trivial ist den url pfad zur admidio installation automatisch zu generieren. Das hab ich jetzt mit den ganzen neuen Konstanten aber umgesetzt wordurch diese variabel nicht mehr benötigt wird. Das man sieh auch für andere sachen "missbrauchen" kann ist wieder ein anderes thema.

Aber man könnte eine Variabel "$gForceHTTPS" ins config file geben und dann wird bei jedem aufruf überprüft ob man auf https ist und wenn nicht wird die gleiche url auf die https variante weitergeleitet. Sollte recht simpel sein umzusetzen. Aber wie gesagt: Die lösung mittel htaccess file ist eigentlich eleganter und auch performanter da schon beim verbindungsaufbau die umleitung stattfindet

Versuch mal folgendes:
Definiere in der config.php eine variabel "$gForceHTTPS = true;"
und füge in die common.php nach "require_once(ADMIDIO_PATH . '/adm_program/system/logging.php');" ein:

Code: Alles auswählen

if (isset($gForceHTTPS) && $gForceHTTPS && !HTTPS)
{
    admRedirect(str_replace('http://', 'https://', CURRENT_URL));
}

Re: SSL Forcierung

Verfasst: 13. Nov 2016, 10:32
von Offe
Ich habe deine Anpassungen mal durchgeführt, aber so ganz funktioniet es noch nicht. Im Browser wird 403 Forbidden ausgegeben, die aufgerufene URL heißt dann plötzlich:
Im Errorlog erscheint auch folgender Fehler
client denied by server configuration: /var/www/adm_program/system/redirect.php
Gruß Offe

Re: SSL Forcierung

Verfasst: 13. Nov 2016, 20:06
von XimeX
Fehler gefunden muss mir aber noch überlegen wie ich das am besten löse.
Wir haben hier einen rekursiven aufruf

Re: SSL Forcierung

Verfasst: 14. Nov 2016, 00:32
von XimeX
Ändere den Code ab in:

Code: Alles auswählen

// HTTPS redirect
if (isset($gForceHTTPS) && $gForceHTTPS && !HTTPS)
{
    header('Location: ' . str_replace('http://', 'https://', CURRENT_URL), true, 301);
    exit();
}

Re: SSL Forcierung

Verfasst: 14. Nov 2016, 07:30
von Offe
Scheint zu funktionieren 8)

Habe den Codeteil eingebaut und die Variable g_root_path auf http geändert. Ein Aufruf mit http wird auf https geändert.

Vielleicht kann es dennoch noch jemand anders testen.

Gruß Offe

----------------

Edit: Wenn ich die Varible forceHttps auf false setze, wird dennoch ein Redirect gemacht. Ich muss mir das im Laufe der Woche nochmal anschauen und testen. Vielleicht kann es sich jemand anders auch separat anschauen.

Re: SSL Forcierung

Verfasst: 14. Nov 2016, 08:39
von XimeX
Das liegt am 301. Das ist ein permanent redirect den sich der Browser merkt. Du müsstest den cache löschen damit er nicht mehr weiterleitet.
303 wäre ein temporärer redirect

Re: SSL Forcierung

Verfasst: 14. Nov 2016, 23:13
von Offe
Ich konnte es jetzt nochmal in Ruhe testen. Funktioniert ohne Probleme.

Gruß Offe

Re: SSL Forcierung

Verfasst: 14. Nov 2016, 23:37
von XimeX