Der grüne Https-“Handbag” in der Adresszeile und Experimente mit Cloudflare für das eigene Blog

Ich habe die vergangene Woche an der NDC in Oslo verbracht – eine Konferenz welche ich jedem Entwickler (nicht nur aus der .NET Welt) definitiv empfehlen kann.

Die ersten zwei Tage verbrachte ich am “Hack Yourself First”-Workshop mit Troy Hunt. Zwei sehr lehrreiche Tage, die eigentlich für (Web-) Entwickler zum Pflichtprogramm gehören sollten, da Grundlagen für die sicherere Entwicklung vermittelt werden.

Während diesem Workshop wurde das Thema Websites generell über https zu publizieren besprochen. Am Rande: Offenbar wird das grüne Schloss-Symbol in der Adresszeile für Https auch als “green Handbag” bezeichnet 😉

Aber zurück zum Thema – relevante Argumente https für eine Website einzusetzen sind:

  • Vertraulichkeit
  • Integrität
  • Authentizität

Interessante Artikel zu diesem Thema:

Da ich gerne Technologien ausprobiere um meinen Horizont zu erweitern, kam die Diskussion über Cloudflare gerade recht. Cloudflare ist ein Dienstleister welcher Security Services, ein Content Delivery Network und verteilte Name Server anbietet. Das Tolle ist dass die Basis Services ohne Bezahlung eines Geldbetrages verfügbar sind. Die Funktion von Cloudflare ist im Detail in der Knowledge Base erklärt.
Der Basis Service bietet ein SSL Zertifikat (welches in der Basisdienstleistung mit anderen Cloudflare-Kunden geteilt wird), Verwendung des DNS Services, beschränkten Schutz vor DDoS-Attacken und stellt einen Reverse Proxy vor dem eigenen Webserver dar. Die Pro- und Enterprise Pläne bieten noch eine Vielzahl an zusätzlichen Funktionen.

Die Umstellung einer Domain auf Cloudflare ist einfach und wird genau erklärt.

Nach der Umstellung der DNS-Server der neu hinzugefügten Domain, dauert es einige Stunden und anschliessend werden die Anfragen über den Reverse Proxy geleitet. Ab diesem Zeitpunkt ist es möglich die Zugriffe auf den Webserver auf die IP-Adressen von Cloudflare einzuschränken.

Mein WordPress-Blog (welches auf einem Raspberry Pi läuft) benötigte anschliessend noch einige “Streicheleinheiten” damit es mit https korrekt läuft. Zunächst erhielt ich in der Diskussion mit Johnny den Hinweis, dass das Really Simple SSL-Plugin den Hauptteil der Arbeit abnimmt. Die Installation des Plugins hat einwandfrei funktioniert. Zunächst musste ich gem. Anleitung (eingeblendet im Blog durch das Plugin) in wp-config.php zuunterst noch den Code für das SSL Loadbalacing ergänzen:

//Begin Really Simple SSL Load balancing fix
$server_opts = array("HTTP_CLOUDFRONT_FORWARDED_PROTO" => "https", "HTTP_CF_VISITOR"=>"https", "HTTP_X_FORWARDED_PROTO"=>"https", "HTTP_X_FORWARDED_SSL"=>"on", "HTTP_X_FORWARDED_SSL"=>"1");
foreach( $server_opts as $option => $value ) {
if ((isset($_ENV["HTTPS"]) && ( "on" == $_ENV["HTTPS"] )) || (isset( $_SERVER[ $option ] ) && ( strpos( $_SERVER[ $option ], $value ) !== false )) ) {
$_SERVER[ "HTTPS" ] = "on";
break;
}
}
//END Really Simple SSL

Zunächst sah das Blog gut aus, aber nach Logout und erneutem Login konnte ich auf die WordPress-Admin-Pages nicht mehr zugreifen. Die Suche auf StackOverflow führte schlussendlich zu der Lösung: