HTTPS mit .htaccess für eine Domain erzwingen und umschalten

25. April 2012  |  Kommentar schreiben   |  Tags: ,



Bei Facebook teilen

Manchmal ist es in der Programmierung von Webseiten notwendig, dass Sie an bestimmte Stellen eine gesicherte Verbindung zu dem Besucher zur Verfügung stellen, angenommen Sie haben ein SSL Zertifikat erworben und mit Ihrem Apache Server installiert. Sie können aber nicht erwarten, dass Ihre User über die Existenz Ihres SSL Zertifikats informiert sind und Ihre Seite immer direkt mit https:// aufrufen. Dies bedeutet, dass Sie sich darum kümmern müssen auf das HTTPS Protokoll umzusteigen, sofern Sie merken, dass der User Ihre Seite einfach über HTTP aufruft. Insbesondere ist das wichtig, wenn Sie sensible Daten wie Bestellungen mit Kreditkarten usw. handhaben. Die Manipulierung der .htaccess Datei wird oft als Teil der Serveradministration angesehen, die wir auch für Sie gerne erledigen können.

Wie kann ich auf HTTPS umschalten?

Sie können beliebig viele Vorgehensweisen für das Umschalten zwischen HTTPS und HTTP implementieren, nachfolgend präsentieren wir aber eine plattformunabhängige Lösung – ein Sprung von HTTP auf HTTPS unter Verwendung der .htaccess Datei. Dies ist durch ein sog. RewriteEngine von Apache möglich.

Umsteigen auf HTTPS in der .htaccess Datei

Betrachten wir nun folgenden Programmier-snippet:

RewriteBase /
RewriteEngine on

RewriteCond %{SERVER_PORT} !443
RewriteRule (.*) https://%{HTTP_HOST}$1 [R=301,L]

Was passiert hier?

  • Zunächst wird definiert, dass der RewriteEngine eingeschaltet wird und von welchen Ordner das Umschreiben anfangen soll, in dem Fall Root (/)
  • RewriteCond ist wie eine Wenn/Dann Klausel – sollte der ServerPort momentan nicht (!) 443 sein (SSL), sondern beispielsweise 80 (HTTP), dann bitte eine engültige Weiterleitung (R=301) zu der https:// Version der Seite machen und hinterher nichts mehr machen (L)
  • Hinter {HTTP_HOST} verbirgt sich Ihre Domain, daher funktioniert die Programmierung für eine beliebige Domain
  • $1 ist der Rest der Adresse, die gerade aufgerufen wird, sie wird wie ein Wunder direkt angehängt :)

Weitere RewriteCond Klausel können vor der obigen eingefügt werden, sobald am Ende ein [AND] steht, so werden diese Klausel in ein logisches UND zusammengeführt.

Wie kann ich sonst SSL/HTTPS für meine Domain erzwingen?

Dies können Sie mit PHP, ASP usw. erledigen, unsere obige Lösung ist eleganter, da sie plattformunabhängig ist. Wir werden demnächst darüber bloggen.

Teilen

Hinterlasse eine Antwort

Du musst angemeldet sein, um einen Kommentar abzugeben.