Umleitung auf https

Hast du Probleme Admidio einzurichten? Hier kannst du Fragen rund um die Einrichtung stellen.
pphlwmarcel
Beiträge: 37
Registriert: 11. Jun 2015, 21:12

Umleitung auf https

Beitrag von pphlwmarcel »

Hallo,

ich möchte meine Admidio Installation ausschließlich über https betreiben und suche nach einer Möglichkeit http-Anfragen automatisch auf https Umzuleiten.

Das Problem dabei ist, dass ich kein eigenes Zertifikat habe und bei meinem Webhoster auf ein SSL-Proxy angewiesen bin.

das heißt die Aufrufe sehen wie folgt aus:
http: http://subdomain.domain.de
https: https://proxy.de/subdomain.domain.de

Wenn ich https://subdomain.domain.de nutze erscheint natürlich immer diese hässliche Zertifikatswarnung - das möchte ich vermeiden. Daher kommt die $gForceHTTPS Variante eigentlich nicht in Frage.

Mein erster Versuch war via htaccess - allerdings egal wie ich es versucht habe, ich bekomme immer einen Umleitungsfehler

Code: Alles auswählen

RewriteEngine On
RewriteCond %{HTTP_HOST} !^proxy(.*)$
RewriteRule ^(.*) https://proxy.de/%{HTTP_HOST}/$1 [R=301]

Code: Alles auswählen

RewriteEngine On
RewriteCond %{HTTP_HOST} !^proxy\.de [NC]
RewriteRule ^(.*) https://proxy.de/$1 [R=301,L]
Die Umleitung auf https funktioniert (sehe ich ja in der Adresszeile im Browser), aber anscheinend "merkt" der Server nicht, dass proxy.de schon aufgerufen ist und er nicht weiter umleiten muss.

Hat jemand eine Idee für mich?
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: Umleitung auf https

Beitrag von XimeX »

Ich bin jetzt kein Apache Profi aber du könntest die $gForceHTTPS methode etwas umbiegen.
Dazu folgendes abändern:
https://github.com/Admidio/admidio/blob ... on.php#L52

Code: Alles auswählen

$url = str_replace('http://subdomain.domain.de', 'https://proxy.de/subdomain.domain.de', CURRENT_URL);
pphlwmarcel
Beiträge: 37
Registriert: 11. Jun 2015, 21:12

Re: Umleitung auf https

Beitrag von pphlwmarcel »

Leider funktioniert das auch nicht. Weiterhin gibt es hier einen Umleitungsfehler (bzw. unendliche Umleitungen)

Ich kann es mir nicht erklären - wenn ich http:// durch https://proxy.de/ ersetze, dann sollte beim neuen Aufruf ja eigentlich https akiv sein und die Bedingung nicht mehr erfüllt sein.
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: Umleitung auf https

Beitrag von XimeX »

Wüsste jetzt nicht warum es nicht funktionieren sollte. Kannst mir mal die URL (per private Nachricht?) zukommen lassen dann schau ichs mir an
joesch
Beiträge: 683
Registriert: 22. Mai 2006, 14:40
Kontaktdaten:

Re: Umleitung auf https

Beitrag von joesch »

Hallo zusammen,

habe das gleiche mit den gleichen Ergebnissen probiert - Fehlanzeige :shock:

Mir ist momentan nicht klar, warum die bis 3.1.9 funktionierende Variante

Code: Alles auswählen

$g_root_path = 'https://<proxyserver>.de/<domain>.de';
in der config.php nicht mehr greift. Mir ist bei meinen Versuchen aufgefallen, dass es in der 3.2. eigentlich völlig egal ist, was in der config.php als $g_root_path drinsteht. Selbst wenn ich

Code: Alles auswählen

$g_root_path = 'http://subdomain.nirgendwo.de';
eintrage, hat das keine Auswirkung :?:

Kann es sein, dass das System darauf gar nicht mehr zugreift?

VG,
joesch
Offe
Beiträge: 568
Registriert: 30. Aug 2007, 17:42

Re: Umleitung auf https

Beitrag von Offe »

Hallo zusammen,

Bei den ersten Tests von 3.2.x in der Betaphase ist mir dies auch entsprechend aufgefallen. viewtopic.php?f=13&t=7250

Ich habe auch immer über die Variable $g_root_path die Umleitung auf SSL gesetzt, ab 3.2.x hat die Variable jedoch keine Funktion mehr. Ximix hat daher die Variable $gForceHTTPS eingeführt, dies wird nur für die Proxy-Geschichte nicht ausreichend sein.

Gruß Offe
joesch
Beiträge: 683
Registriert: 22. Mai 2006, 14:40
Kontaktdaten:

Re: Umleitung auf https

Beitrag von joesch »

OK :!:

Nur komme ich hier im Moment leider nicht mehr ganz mit ... Daher frage ich mal anders ;-)

Muss ich für die Nutzung eines ssl-Proxy in der Form https://ssl.webpack.de (wie ihn sicher viele von uns haben) ab Version 3.2.,
- einen Eintrag in einer Konfig-Datei (welche) von Admidio vornehmen
- zusätzlich eine .htaccess (mit welchem Inhalt) in das /adm-Verzeichnis legen?

Vielen Dank schon mal für eure Hilfe :-)


VG,
joesch
Benutzeravatar
fasse
Administrator
Beiträge: 6167
Registriert: 12. Nov 2005, 16:06

Re: Umleitung auf https

Beitrag von fasse »

Hallo zusammen,

wir haben in der 3.2 versucht die Variable $g_root_path zu ersetzen und automatisch die richtige URL zu bestimmen. Leider scheint es hier Probleme mit SSL-Proxies zu geben, über die wir nicht nachgedacht haben und die auch bei den Tests nicht aufgefallen sind.

Ziel ist es Admidio wieder voll lauffähig zu bekommen mit allen möglichen SSL-Varianten. Wir arbeiten daran.

$g_root_path ist aus Kompatiblitätsgründen noch weiter in der config.php wird von Admidio selber aber nicht mehr benötigt. Ggf. noch von Plugins.

@Ximex: Würde es evtl. nicht Sinn machen eine weitere Variable für SSL-Proxies zu definieren und mit dieser dann die richtige URL zusammenzubauen?

Viele Grüße
Fasse
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: Umleitung auf https

Beitrag von XimeX »

Ich würde mir gerne mal eine Seite wo meine Änderung (siehe unten) umgesetzt wurde anschauen. Vll kann ich dann auch rausfinden woran es wirklich liegt. Leider hab ich keine solche Seite zum Testen. Also wenn mir bitte wer eine URL (als PM) zukommen lässt.

Code: Alles auswählen

$url = str_replace('http://subdomain.domain.de', 'https://proxy.de/subdomain.domain.de', CURRENT_URL);
@Fasse: zuerst will ich mir mal so eine Seite anschauen um rauszufinden was überhaupt der Grund ist.

@joesch: "$g_root_path" wird von Admidio nicht mehr verwendet. Jedoch wurde es drinnen gelassen falls noch ein Plugin etc diese Variable braucht
pphlwmarcel
Beiträge: 37
Registriert: 11. Jun 2015, 21:12

Re: Umleitung auf https

Beitrag von pphlwmarcel »

Ich setze die Tage eine Installation mit der entsprechenden Änderung bei mir auf und schicke dir den Link. Im Produktivsystem habe ich die Änderung nicht drin ;-)
joesch
Beiträge: 683
Registriert: 22. Mai 2006, 14:40
Kontaktdaten:

Re: Umleitung auf https

Beitrag von joesch »

[quote="XimeX"]Also wenn mir bitte wer eine URL (als PM) zukommen lässt.

Code: Alles auswählen

Habe dir eine PM gesendet ...

VG, joesch
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: Umleitung auf https

Beitrag von XimeX »

So hab das Problem gefunden. Für Admidio ist es ein HTTP aufruf da ja der Proxy sich per HTTP weiterverbindet. Daher brauchen wir hier eine extra Erkennung. Hier mein Lösungsvorschlag:

in der constants.php folgende Zeile abändern bzw hinzufügen:

Code: Alles auswählen

define('SECURE_PROXY', isset($gSecureProxy) && $gSecureProxy === $_SERVER['HTTP_X_FORWARDED_HOST']);
define('HTTPS', (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || SECURE_PROXY); // true
Und dann in der config.php noch eine Variable definieren mit:

Code: Alles auswählen

$gSecureProxy = 'sslsites.de';
Oder halt den entsprechenden Proxy eintragen. Dann werden alle Verbindungen von diesem Proxy als HTTPS interpretiert. Ob das auch wirklich sicher ist und nicht ausnutzbar ist kann ich noch ned sagen.
Benutzeravatar
fasse
Administrator
Beiträge: 6167
Registriert: 12. Nov 2005, 16:06

Re: Umleitung auf https

Beitrag von fasse »

@ximex: Kannst du das noch so commiten, damit wir hier demnächst eine neue Version mit der Korrektur rausbringen können.
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: Umleitung auf https

Beitrag von XimeX »

Kann ich machen. Nur bitte folgendes beachten:
Ob das auch wirklich sicher ist und nicht ausnutzbar ist kann ich noch ned sagen.
Edit:
Muss da noch was anderes testen. Wie sich die anderen Variablen (SERVER_NAME, ...) verhalten...

Edit2:
Sieht schlecht aus. Ich kann einige Dinge die ich brauche nicht rauslesen aus der $_SERVER variable.

Man müsste zb das noch machen:

Code: Alles auswählen

$host = isset($_SERVER['HTTP_X_FORWARDED_HOST']) ? $_SERVER['HTTP_X_FORWARDED_HOST'] : $_SERVER['HTTP_HOST'];
$serverName = isset($_SERVER['HTTP_X_FORWARDED_SERVER']) ? $_SERVER['HTTP_X_FORWARDED_SERVER'] : $_SERVER['SERVER_NAME'];
define('HOST', $host === null ? $serverName . $port : $host); // www.example.org:1234
Jedoch bekomm ich den Pfad teil von zb: "https://sslsites.de/www.example.com/" nicht raus. Ja man könnte das jetzt hard codieren aber das heißt nicht das es dann bei jedem funktioniert.
Benutzeravatar
fasse
Administrator
Beiträge: 6167
Registriert: 12. Nov 2005, 16:06

Re: Umleitung auf https

Beitrag von fasse »

Ich verstehe jetzt immer noch nicht, was das Problem an der Lösung mit $gSecureProxy ist.

Dort trägt jemand seinen Proxy ein (ähnlich $g_root_path) und wir setzen den dann einfach zwischen unsere URL. Das ist dann genauso sicher/unsicher wie vorher.

Ich hab das mal so übernommen:
https://github.com/Admidio/admidio/issues/475
Antworten