Hallo,
ich bin der Meinung, gewisse Bereiche in einem Forum sollten nur verschlüsselt übertragen werden. Dazu gehört z. B. die Registrierung, die PMs oder das Kontrollzentrum.
Ich habe mich jetzt mal drangesetzt und das für mein Forum umgesetzt und läuft dort auch seit einiger Zeit Problemlos. das vBulletin ist recht sauber geschrieben weshalb es an sich keinerlei Probleme mit dem hin- und herspringen von https und http hat. Alles möchte ich aus Lastgründen nicht über https laufen lassen.
Was leider (noch) nicht funktioniert, ist der Login. Wenn ich hier von https wieder auf http umspringe verlier ich die Daten und naja dann klappt das halt nicht![]()
Vorarbeit: Natürlich brauchen wir hierfür ein SSL-Zertifikat. Ich persönlich halte nicht viel von selbstunterzeichneten. Sicher funktioniert das genauso aber die Warnmeldung (die ja im IE7 sehr brutal aussieht) schreckt doch mehr Leute ab als das es was bringt. Es gibt ja doch jede Menge recht günstige Anbieter im Netz die Zertifikate für ein Taschengeld anbieten. Damit SSL sauber läuft benötigt man eine eigene IP mit Reverse-Lookup. Das derjenige der das einsetzt sich damit aber auskennt setz ich jetzt vorraus und soll jetzt mal nicht das Thema dieses HowTos sein.
Ich habe es so eingerichtet, dass ich das Forum ohne https und http://www.domain.tld erreichbar mache. https geht über https://domain.tld (das muss ja fest im Zertifikat angegeben werden ausser man leistet sich ein teures Wildcard-Zertifikat).
Wenn das Forum nun per https und https erreichbar ist, kann man sich dran setzen, die Umschreibungen zu bauen...
Umschreibung: Die Umschreibung geschieht bei mir mit einer .htaccess-Datei. mod-rewrite muss aktiviert sein und ich muss das per htaccess steuern dürfen.
Hier der Inhalt meiner Datei:
Was passiert hier nun? Ich mache nichts anderes, wie den Port auf dem die Anfrage kommt (http kommt ja auf 80 und https auf 443) abzufragen und dann zu schauen, was für eine datei wird abgefragt. Wenn die Datei zu schützende Inhalte beinhaltet (z. B. das usercp oder das profile) dann schreib ich die Anfrage auf https um. Ist das nicht der Fall, dann erfolgt die Auslieferung per http. Damit bevormunde ich zwar meinen BesucherCode:RewriteEngine On # SSL-Umschreibung RewriteCond %{SERVER_PORT} !^443$ RewriteCond %{REQUEST_FILENAME} usercp.php [OR] RewriteCond %{REQUEST_FILENAME} private.php [OR] RewriteCond %{REQUEST_FILENAME} profile.php [OR] RewriteCond %{REQUEST_FILENAME} register.php [OR] RewriteCond %{REQUEST_FILENAME} moderation.php [OR] RewriteCond %{REQUEST_FILENAME} member.php [OR] RewriteCond %{REQUEST_FILENAME} subscription.php RewriteRule (.*) https://forumsdomain.tld%{REQUEST_URI} [L] RewriteCond %{REQUEST_METHOD} !^POST$ RewriteCond %{SERVER_PORT} ^443$ RewriteCond %{REQUEST_FILENAME} !usercp.php RewriteCond %{REQUEST_FILENAME} !private.php RewriteCond %{REQUEST_FILENAME} !profile.php RewriteCond %{REQUEST_FILENAME} !register.php RewriteCond %{REQUEST_FILENAME} !moderation.php RewriteCond %{REQUEST_FILENAME} !member.php RewriteCond %{REQUEST_FILENAME} !subscription.php RewriteCond %{REQUEST_FILENAME} (.*)\.php RewriteRule (.*) http://www.forumsdomain.tld%{REQUEST_URI} [L]aber ich kann hier sehr genau einstellen, wann ich eine höhere Last durch Verschlüsselung auf meiner Maschine erzeuge.
Nacharbeit: Bei einem Standardboard ist jetzt alles OK. Wer jedoch Werbung, Analytic Tools, etc. auf seinem Board hat, hat jetzt ein Problem. Sobald die Umschaltung auf https geschieht, erfolgt die Meldung, das unsichere Elemente geladen werden und ob fortgefahren werden soll oder nicht. Ich persönlich hasse diese Meldung wie die Pest.
Was kann man tun? Das Stichwort ist ein Plugin! Im Template habe ich einen Platzhalter für das Werbebanner eingebaut (nenne ich jetzt einfach $werbebanner). Ein Plugin ersetzt das ganze durch meinen Ad-Code.
Einstiegspunkt: parse_templates
Plugin-Name: Werbebanner anzeigen
Ausführungsreihenfolge: 6
Code:Im Prinzip mache ich hier das selbe wie in der .htaccess-Datei. Ich überprüfe auf welchen Port die Anfrage kommt und entsprechend handle ich.PHP-Code:// normale HTTP-Anfragen
if($_SERVER['SERVER_PORT'] == 80) {
// Banner anzeigen
$werbebanner = '<<< CODE 1 >>>';
// HTTPS-Anfragen
} else {
$rnd = rand(0, 1);
// HTTPS Banner
if($rnd == 0) {
$werbebanner = '<<< CODE 2 a >>>';
} else {
$werbebanner = '<<< CODE 2 b >>>';
}
}
CODE 1: Das ist mein normales reguläres Banner ohne https (wer einen Anbieter kennt der sauber seine Banners über https ausliefert möchte mir as bitte sagen)
CODE 2: Diese Banner halte ich auf meinem Server vor und werden deshalb sauber via https ausgeliefert. In diesem Beispiel habe ich zwei Banner die abwechselnd eingeblendet werden.
Dieses Beispiel kann man auch für andere Sachen verwenden. Ich schalte so z. B. noch ein SiteSeal und ein Analytic-Tools (das leider auch nicht per https geht).
Ende: So jetzt bin ich schon mal am Ende meines kleines HowTos. Über Vorschläge/Erweiterungen/etc. bin ich dankbar. Wehe ihr zerreist mich in der Luft
cu tb
Änderungen:
2008-09-12: POST für Login ausgeschlossen. Danke an Christian...




) schreckt doch mehr Leute ab als das es was bringt. Es gibt ja doch jede Menge recht günstige Anbieter im Netz die Zertifikate für ein Taschengeld anbieten. Damit SSL sauber läuft benötigt man eine eigene IP mit Reverse-Lookup. Das derjenige der das einsetzt sich damit aber auskennt setz ich jetzt vorraus und soll jetzt mal nicht das Thema dieses HowTos sein.
aber ich kann hier sehr genau einstellen, wann ich eine höhere Last durch Verschlüsselung auf meiner Maschine erzeuge.
Zitieren



Dabei finde ich deinen Ansatz nur bestimmte Bereiche zu verschlüsseln gut.


Lesezeichen