Viele Installationen benötigen für Datenübertragungen oder sonstiges eine sichere Verbindung. Eigentlich sind die Unternehmen sogar dazu verpflichtet, persönliche Daten sicher zu übertragen. Leider gibt es keine Extension ist mir keine Extension bekannt, welche eine HTTPS Verbindung auf saubere Art und Weise erzwingt.
Wir verwendeten fürher recht oft die Extension https_enforcer. Vor einiger Zeit bin ich drauf gekommen, dass die o.g. Extension leider per INT-Script included wird, und so per se für alle Seiten der Website die höchste Cachingebene ausschaltet. Deshalb haben wir folgende trickreiche Einstellung vorgenommen, damit das Plugin nur im notwendigen Fall aktiviert wird (was bedeutet, dass im Umkehrschluss, dass kein HTTP Enforce möglich ist):
[globalVar = TSFE:page|tx_httpsenforcer_force_secure = 1]
#Ist es eingeschaltet, nimm einen sicheren Base-HREF
config.baseURL = https://www.***.de
#Installation nach Manual
page.5 < plugin.tx_httpsenforcer_pi1
[global]
Wir hatten aber Schwierigkeiten, auch ein HTTP Enforce, bzw. ein HTTPS Unenforce möglich zu machen, da die Besucher – einmal im SSL-Protokoll – nicht mehr davon wegkamen. Das SSL Protokoll benötigt nämlich sehr viele Server Resourcen und das ist auf Dauer sehr teuer für den Kunden.
Also haben wir folgende Extension installiert, welche ebenfalls den Umgang mit SSL regelt. Wir mussten die Extensionleicht modifizieren (t3x_dmc_https-0_2_1-z-200906021813.zip), sodaß beide Extensions auf das Feld pages.tx_httpsenforcer_force_secure zugreifen. Die Extension ist im Gegensatz zur https_enforcer (Zwingt den Besucher auf HTTPS) eine weiche Forcierung eines Protokolls, daher spielen beide Extensions gut zusammen. Sie verändert die generierten Menüs und Links in der Hinsicht, dass – falls der SSL Modus aktiviert ist – absolute Links auf alle Seiten gesetzt werden, die pages.tx_httpsenforcer_force_secure=0 haben.
Ich habe jetzt mal die beiden Extension zusammengeführt:
http://typo3.org/extensions/repository/view/https/current/
Die Zusammenführung ist gut, enthält m.E. aber einen logischen Fehler.
Dieser steht in Zusammenhang mit der Verwendung unterschiedlicher Domains für sichere / unsichere Verbindung.
https_enforcer bietet das per Konfiguration (Constants) an. Nun schreibt dmc_https die Links für Seiten mit
entsprechender Definition für https zwar um, aber nur das Protokoll. Ruft man nun die Seite auf, fühlt sich
http_enforcer auch nicht mehr zuständig da ja das Protokoll bereits https ist.
Ich habe mir da wie folgt beholfen.
In der Funktion user_t3lib_tstemplate_linkData_https($params,&$obj) der Library https_lib.php
hole ich mir die Information der abweichenden Domains.
$unsecure_domain = $GLOBALS[‚TSFE‘]->tmpl->setup[‚plugin.‘][‚tx_https_pi1.‘][‚unsecure_typo3_root‘];
$secure_domain = $GLOBALS[‚TSFE‘]->tmpl->setup[‚plugin.‘][‚tx_https_pi1.‘][’secure_typo3_root‘];
Die Attribute werden dann im if($force_modus) Block verwendet.
// $s_server = $_SERVER[„HTTP_HOST“];
if($to_type == HTTP_PREFIX){
$s_server = $unsecure_domain;
} elseif($to_type == HTTPS_PREFIX){
$s_server = $secure_domain;
}
Viele Grüße,
Claus
Hm, den Fall hatte ich nicht. Werde ich bei Gelegenheit mal testen und einbauen. Danke!
Hi,
Vielen Dank. Das hat mir sehr geholfen, hab lange Zeit nach einer Lösung gesucht, da der IE mir die Seiten dann immer ohne CSS dargestellt hat, hab so passts jetzt.
Danke
Marek
Hallo zusammen
Ich habe die neueste Version von PHP installiert und da ist die Funktion eregi_replace() deprecated. Das Plugin funktioniert damit nicht mehr. Ich bekomme die Fehlermeldung:
t3lib_error_Exception
PHP : Function eregi_replace() is deprecated in …/typo3conf/ext/https/libs/https_lib.php line 74
Die Zeile
$LD[‚totalURL‘] = eregi_replace($from_type.$s_server, “, $LD[‚totalURL‘]);
Muss irgendwie angepasst werden.
Kann mir da jemand helfen?
Vielen Dank im Voraus
Jens
Hallo,
Es sieht so aus als würde es mit „preg_replace“ angepasst.
http://www.php.net/manual/de/reference.pcre.pattern.posix.php
Hoffe es hilft.
Lg
Dani
Sorry,
Damit muss man es lösen: „str_replace“,
$LD[‚totalURL‘] = str_replace($from_type.$s_server, “, $LD[‚totalURL‘]);
Dani
Das Skript hat noch ein kleines Problem bei externen URLs in Verbindung mit CoolURI. In dem Fall wird der externen URL auch ein http://www.domain.de vorne angestellt.
Ich habe mir in der Datei https_lib.php mit einer kleinen Funktion beholfen die testet ob es sich bei der Seite um eine Externe URL handelt:
function checkForExternalURL($uid) {
$page = $GLOBALS[‚TSFE‘]->sys_page->getPage($uid);
if($page[‚doktype‘] == 3) return true;
}
In diesem Fall macht die Extension jetzt einfach nichts:
if(checkForExternalURL($page[‚uid‘])) {
//The page is an external URL, do nothing
} else $LD[‚totalURL‘] = $to_type.$s_server.$script_path.$add_slash.$LD[‚totalURL‘];
Keine Ahnung ob das die eleganteste Lösung ist, aber es funktionert.
Moin,
ich versuche gerade das https plugon zum laufen zu bekommen.
Ich nutze einen ssl proxy bei domainfactroy.
Auf meiner Startseite gibt es eine ssl enabledte Seite. Diese wird aber immer mit https://www.domain.de verlinkt. Wenn ich klicke kommt eine Zerifikatswarnung und dann der temporarily move auf https://sslsites.de/www.domain.de.
Auf der folgenden Seite ist dann der SeitenLink im Menü richtig mit sslsites.de, alle anderen aber falsch.
Ich arbeite mit cooluri. Hat da jemand eine Idee?
Sven
Problem gefunden.
Es muss der versteckte Schalter force_links auf 0 gesetzt werden.
Weiß jemand was maygyver mit „dem versteckten Schalter force_links“ meint?