SSL Forcierung

Topics from older beta tests.
Antworten
Offe
Beiträge: 568
Registriert: 30. Aug 2007, 17:42

SSL Forcierung

Beitrag 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
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: SSL Forcierung

Beitrag 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?
Offe
Beiträge: 568
Registriert: 30. Aug 2007, 17:42

Re: SSL Forcierung

Beitrag 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
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: SSL Forcierung

Beitrag 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));
}
Offe
Beiträge: 568
Registriert: 30. Aug 2007, 17:42

Re: SSL Forcierung

Beitrag 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
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: SSL Forcierung

Beitrag von XimeX »

Fehler gefunden muss mir aber noch überlegen wie ich das am besten löse.
Wir haben hier einen rekursiven aufruf
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: SSL Forcierung

Beitrag 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();
}
Offe
Beiträge: 568
Registriert: 30. Aug 2007, 17:42

Re: SSL Forcierung

Beitrag 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.
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: SSL Forcierung

Beitrag 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
Offe
Beiträge: 568
Registriert: 30. Aug 2007, 17:42

Re: SSL Forcierung

Beitrag von Offe »

Ich konnte es jetzt nochmal in Ruhe testen. Funktioniert ohne Probleme.

Gruß Offe
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: SSL Forcierung

Beitrag von XimeX »

Antworten