shared ssl und cakephp

Fragen und Diskussionen zur Installation und Konfiguration von Cake.

shared ssl und cakephp

Beitragvon mbrod am So 4. Okt 2009, 15:24

Ich würde gerne eine cakephp Applikation per shared ssl erreichen.
Shared-SSL kurz erläutert: Normaler Zugang zu einem (nicht cakephp) Programm z.B über
Code: Alles auswählen
http://domainname.tld/programm/index.php

Die SSL-Verbindung per shared ssl geht dann so:
Code: Alles auswählen
https://sichere-verbindung.com/domainname.tld/programm/index.php

(sichere-verbindung.com ist z.B. bei HostEurope konkret ssl.webpack.de und bei All-inkl ssl-account.com)
Sofern dann die index.php dem Benutzer weitere (relative) Links (=Funktionen) zur Verfügung stellt, werden diese Verweise auch korrekt aufgelöst:
Code: Alles auswählen
https://sichere-verbindung.com/domainname.tld/programm/weitere-funktion.php

Anders bei cakephp. Normale Adresse (ohne mod_rewrite):
Code: Alles auswählen
http://domainname.tld/cakephp/index.php/controller/action

Bei der sicheren Verbindung über
Code: Alles auswählen
https://sichere-verbindung.com/domainname.tld/cakephp/index.php/controller/action
wird mir zwar die entsprechende Seite angezeigt, allerdings fehlt das ganze css. Und allen Verweisen fehlt in der Adresse domainname.tld/:
Code: Alles auswählen
https://sichere-verbindung.com/cakephp/index.php/controller/action

Beim Klick auf so einen Verweis bekommt man dann natürlich eine 404er Seite.

Hat jemand schon mal an dem Problem gearbeitet? Ich sehe 2 Ansätze:
1.) mit .htaccess und mod_rewrite oder ähnlichem. Habe damit null Erfahrung und traue mir nicht zu selbst eine Lösung zu finden.
2.) Das Problem über den Dispatcher lösen. Aber wie?

Schon mal eine Danke vorweg!
mbrod
 
Beiträge: 103
Registriert: Mi 20. Mai 2009, 18:09
Wohnort: Frankfurt am Main
CakePHP-Version: 1.3.2
OS: Mac OS X

Re: shared ssl und cakephp

Beitragvon mbrod am Do 4. Feb 2010, 00:46

Inzwischen habe ich eine Lösung für das Problem gefunden, allerdings nur unter speziellen Voraussetzungen. Ich schildere die Lösung, so wie ich sie beim Webhoster all-inkl hinbekommen habe. Dabei habe ich ziemlich viel rumprobiert ohne wirklich im Detail zu verstehen, wie die Objekte Dispatcher und Router sowie die Dateien cake/basics.php und cake/config/paths.php zusammenarbeiten.
Installation:
1. mod_rewrite verwendet, also .htaccess nicht gelöscht
2.1 Ordnerstruktur verwendet, wie sie von der Distribution geliefert wird.
2.2 Lediglich den Ordner cake (core CakePHP libraries) um 2 Ebenen nach oben befördert, um mit mehreren Projekten/Applikationen darauf zugreifen zu können. (Siehe:http://book.cakephp.org/view/35/Advanced-Installation)
Ordnerstruktur.jpg
Ordnerstruktur.jpg (18.27 KiB) 86-mal betrachtet

Normaler Zugriff auf die Applikation also über:
Code: Alles auswählen
http://domainname.tld/programm/controller/action/params...

In app/webroot/index.php habe ich nun folgende Zeilen hinzugefügt:
/**
* mbrod: enable use of ssl proxy
*
*/
if (!defined('FULL_BASE_URL') && isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
define('FULL_BASE_URL', 'https://'.$_SERVER['HTTP_X_FORWARDED_HOST']);
}


((((((((((((((((((((
Fehler in Forumsoftware macht leider aus &&
Code: Alles auswählen
&&
))))))))))))))))))))

Das ganze vor den Zeilen:
Code: Alles auswählen
/**
 * Editing below this line should NOT be necessary.

In app/config/core.php folgenden Code eingefügt:
Code: Alles auswählen
/**
 * mbrod: enable use of ssl proxy
 */

if(isset($_SERVER['HTTP_X_FORWARDED_HOST'])){Configure::write('App.base', DS.env('HTTP_HOST').DS.array_pop(explode('/',ROOT)));}
 
Zeilen danach:
Code: Alles auswählen
/**
 * Uncomment the define below to use CakePHP admin routes.

Nun funktioniert der Zugriff auch über
Code: Alles auswählen
https://sichere-verbindung.com/domainname.tld/programm/controller/action/params...


Stolperstein: Die statische Startseite der Applikation
Code: Alles auswählen
http://domainname.tld/programm
muss bei sicherer Verbindung mit zusätzlicher Angabe der index.php
Code: Alles auswählen
https://sichere-verbindung.com/domainname.tld/programm/index.php
adressiert werden. Dies ist eine Eigenschaft des ssl-Proxy und hat nichts mit CakePHP zu tun.
Konkrete Beispiele:
http://brodsoft.de/strom/users/login
https://ssl-account.com/brodsoft.de/strom/users/login
http://brodsoft.de/strom
https://ssl-account.com/brodsoft.de/strom/index.php
mbrod
 
Beiträge: 103
Registriert: Mi 20. Mai 2009, 18:09
Wohnort: Frankfurt am Main
CakePHP-Version: 1.3.2
OS: Mac OS X

Re: shared ssl und cakephp

Beitragvon havanna am Do 4. Feb 2010, 12:54

Hallo,

schön, dass du das für all-inkl beschrieben hast. Ich hatte mal einen Beitrag zum Thema SSL mit CakePHP gefunden:

http://neeocis.wordpress.com/2008/07/09 ... onnection/

Vielleicht nützt es dir oder jemand anders.

Ciao Thomas
Benutzeravatar
havanna
 
Beiträge: 174
Registriert: Mi 15. Okt 2008, 23:12
Wohnort: Bodman-Ludwigshafen
CakePHP-Version: 1.2.x
OS: WIN


Zurück zu Installation und Konfiguration

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron