Konfiguration von Durpal 5.1 um einen SSL-Proxy (z.B. von 1&1) zu verwenden
Wer bei 1&1 ein SSL-Zertifikat in Anspruch nimmt, wird sich zunächst wundern, dass sich nicht einfach das http vor der eigenen Webseiten-URL in https ändert. Zum Einsatz kommt nämlich ein so genannter SSL-Proxy. Die neue, verschlüsselte URL lautet nun zum Beispiel https://ssl.kundenserver.de/MEINEDOMAIN.de/
.
Um nun Drupal beizubringen mit dieser URL umzugehen, braucht es einige Anpassungen.
Als erstes muss die base_url in der settings.php korrekt gesetzt werden.
Ist dies geschehen, wird die Seite schon unter der SSL-URL angezeigt. Allerdings verweisen sämtliche Formulare auf die Domain https://ssl.kundenserver.de
und nicht, wie notwendig, auf https://ssl.kundenserver.de/MEINEDOMAIN.de/
.
Sobald man "Absenden" klickt, erscheint die Fehlermeldung "Seite nicht gefunden".
Das lässt sich auf eine wirklich sehr unschöne, aber funktionierende Art beheben.
Man öffne die Datei form.inc, und ändere die Methode theme_form ab, so dass sie wie folgt ausschaut:
function theme_form($element) {
// Anonymous div to satisfy XHTML compliance.
if (strstr(check_url($element['#action']),"service.maximago.de") == FALSE) {
$action = $element['#action'] ? 'action="/MEINEDOMAIN.de' . check_url($element['#action']) . '" ' : '';
} else {
$action = $element['#action'] ? 'action="' . check_url($element['#action']) . '" ' : '';
}
return '<form '. $action . ' method="'. $element['#method'] .'" '. 'id="'. $element['#id'] .'"'. drupal_attributes($element['#attributes']) .">\n<div>". $element['#children'] ."\n</div></form>\n";
}
Ja. Es ist unschön. Und es wird zurecht Kommentare prasseln, die uns aufklären, dass eine solche Anpassung bei Updates zu Problemen führen. Aber zunächst funktioniert die Sache.
Die Formulare gehen jetzt an die richtige URL. Aber: Der Anmeldeprozess funktioniert nicht. Es kommt keine Fehlermeldung, sondern bei den richtigen Zugangsdaten wird die Anmeldung schlicht ignoriert.
Um dies zu umgehen, müssen drei Zeilen der settings.php hinzugefügt werden, die das Cookie-Handling einrichten:
ini_set('session.cookie_domain','ssl.kundenserver.de');
ini_set('session.auto_start', 0);
ini_set('register_long_arrays', 1);
Als letzten Schritt kann eine kleine Abfrage ganz oben in der page.tpl.php dafür sorgen, dass Besucher, die nicht über https, sondern http kommen, auf die neue verschlüsselte URL umgeleitet werden. Und zwar so:
$request_type = ($_SERVER['HTTP_X_FORWARDED_HOST'] == 'ssl.kundenserver.de') ? 'SSL' : 'NONSSL';
if($request_type!="SSL"){
header("Location:https://ssl.kundenserver.de/MEINEDomain.de");
}
Und damit sollte die Verschlüsselung klappen!
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 1 Tag 7 Stunden
vor 1 Tag 9 Stunden
vor 1 Tag 10 Stunden
vor 1 Tag 10 Stunden
vor 1 Tag 11 Stunden
vor 1 Tag 11 Stunden
vor 2 Tagen 1 Stunde
vor 3 Tagen 9 Stunden
vor 4 Tagen 9 Stunden
vor 4 Tagen 16 Stunden