idee

Verschlüsselung ist gut – sichere Verschlüsselung ist besser!

In diesem Artikel werden wir unsere Verschlüsselung unter NGINX verstärken und somit sicherer machen. Wir werden so umstellen, dass nur noch Protokolle, Cipher Suites und Verschlüsselungsalgorithmen genutzt werden, welche – Stand Heute – als sicher gelten, also keine Schwachstellen vorhanden sind.

Ziel ist es, Angriffe wie Heartbleed, BEAST, Poodle und Konsorten zu verhindern,  wir werden nur Cipher Suites verwenden, welche Forward Secrecy bieten und SSL v3 und älter unterbinden.

Wir möchten als Ergebnis ein A+ Rating beim SSL Labs Test erhalten.

Bitte beachtet, dass ihr damit möglicherweise einige veraltete Browser von eurer Webseite ausschließt, z.B. Internet Explorer 8 und älter unter Windows XP. Diese Browser unterstützen in der Regel aber sowieso kein SNI (virtuelles SSL Hosting). Im Sinne der Sicherheit sollte das akzeptabel sein.

Ausgangslage

Zum Start nehmen wir eine Webseite auf einem vServer welche mittels EasyEngine eingerichtet wurde.

Die URL dieser Seite werfen wir in den SSL Labs Test und erhalten folgendes Ergebnis:

SSL Repost Ausgangslage

Als Overall Rating erhalten wir ein ‚B‘ – wobei wir schon sehen könne, dass unser Zertifikat 100% erreicht, die Protokoll Unterstützung sowie die Cipher Stärke sehr gut bewertet sind.

Auf Grund des schwachen Diffie-Hellman Schlüssel Austausches, wird die Bewertung aber auf ‚B‘ begrenzt. Dieses wollen wir durch unsere Anpassungen ‚korrigieren‘.

Wir nehmen Änderungen an der Konfiguration eures Servers vor – bitte legt euch ein Backup aller Konfigurationsdateien an – und immer daran denken: Alle Änderungen auf eigene Gefahr!

NGINX Anpassen

Dieses HowTo basiert auf einer Einrichtung mit EasyEngine – lässt sich aber auf alle NGINX Einrichtungen anwenden, die Pfade sind dann allerdings möglicherweise abweichend!

Grundsätzlich bestehen 2 Möglichkeiten die Einstellungen anzupassen:

  1. Global für alle per NGINX bedienten Domains
  2. Für jede Domain einzeln

Wenn ihr das Global einstellen möchtet, dann ändert ihr die Einstellungen in der NGINX Konfigurationsdatei unter /etc/nginx/nginx.conf

Einige der hier im HowTo besprochenen Anpassungen sind bei EasyEngine bereits voreingestellt!

Solltet ihr das per Domain anpassen, dann ändert ihr das in der Konfigurationsdatei der jeweiligen Domain, und zwar im { server } Block,  die Anpassungen werden im SSL Teil vorgenommen!

Ihr findet die Konfigurationsdatei hier: /var/www/domain.de/conf/nginx/ssl.conf – bitte domain.de gegen eure Domain austauschen.
Bei Debian Standard Einrichtung unter /etc/nginx/sites-available/domain.de – bei CentOS unter /etc/nginx/nginx.conf.

Der Inhalt der Konfiguration sieht wie folgt aus:

Diese Konfiguration passen wir nun an:

SSLv2 und SSLv3 abschalten

SSLv2 und SSLv3 sind unsicher, wir werden diese abschalten und nur die Protokolle TLS v1 v1.1 und v1.2 unterstützen, dazu fügen wir folgende Zeile zur Konfiguration hinzu:

TLSv1 kann von einem Angreifer auf SSL v3 heruntergestuft werden – das ist allerdings kein Problem, da wir SSL v3 nicht unterstützen. Man kann auch überlegen TLSv1 aus der Konfiguration zu entfernen.

Bei EasyEngine kann dieser Punkt übersprungen werden, außer ihr möchtet TLSv1 entfernen!

Cipher Suites anpassen

Die Cipher Suites bestimmen, welche Algorithmen zum Aufbau eine SSL Verbindung verwendet werden sollen, mit der folgenden Änderung beschränken wir die Aushandlung zwischen Client und Server auf Cipher Suites welche Forward Secrecy unterstützen.

Mittels ssl_prefer_server_ciphers on stellen wir außerdem sicher, dass beim Verbindungsaufbau die Server Wünsche bzgl. Cipher Suite benutzt werden. Nnormalerweise werden die des Clients genutzt, aber das möchten wir verhindern.

Die Cipher Suites in EasyEngine sind bereits gut konfiguriert, wenn gewünscht, dann kann man diese noch weiter einschränken

Bei nicht EasyEngine Installationen bitte noch diese beiden Parameter einstellen bzw. überprüfen:

Wenn ihr ältere Clients unterstützen möchtet, dann könnt ihr, dem Mozilla SSL Konfigurator folgen und die folgenden Cipher Suites Verwenden (was auch der Default Einstellung bei Easy Engine entspricht!)

Diffie Hellman Schlüssel anpassen

Wir richten nun einen 4096bit langen Diffie Hellman Schlüssel ein, damit passen wir die Schlüssellänge so an, dass ein mindestens gleichlanger Schlüssel wie in den Zertifikaten verwendet wird – und gleichzeitig ersetzen wir den mitgelieferten Schlüssel durch unseren eigenen.

Man kann auch einen 2048bit langen Schlüssel erstellen, dann einfach 4096 durch 2048 ersetzen

Die Generierung dauert ziemlich lange – genug Zeit für einen Kaffee!

Diesen Schlüssel definieren wir dann in der globalen NGINX Konfigurationsdatei!
Hier fügen wir im SSL Settings Teil die folgende Zeile hinzu

HSTS – HTTP Strict Transport Security einstellen

Mittels HSTS teilt der Server dem Browser beim Verbindungsaufbau mit, dass er innerhalb einer angegebenen Zeit (max-age), nur noch verschlüsselt mit dem Server kommunizieren soll.

Daraufhin wird jede unverschlüsselte Verbindung, sowie jede Verbindung mit einem ungültigen Zertifikat abgebrochen. Dadurch lassen sich Man in the Middle Attacken vermeiden.

Der max-age Parameter gibt in Sekunden an, wie lange der Browser noch nur verschlüsselt kommunizieren soll.
Wir konfigurieren ein max-age von 6 Monaten.

Diese Einstellung nehmen wir per Domain vor, also bitte in der /var/www/domain.de/conf/nginx/ssl.conf eintragen!

Solltet ihr planen, die Webseiten wieder per HTTP auszuliefern, dann bitte einige Zeit vor dieser Umstellung das max-age auf 1 Sekunde einstellen, ansonsten kann ein wiederkehrender Besucher erst nach Ablauf der max-age wieder auf die Webseite zugreifen!

Abschluss und erneuter SSL Labs Test

Die Konfiguration ist nun fertig und wir starten NGINX neu. Danach besuchen wir die SSLABS Testseite um den Erfolg unserer Anpassungen zu überprüfen. Das Ergebnis sollte nun so aussehen:

SSL Labs Ende

Ihr solltet jetzt auch bei einem A+ Rating gelandet sein, wenn nicht, dann stimmt an eurer Konfiguration etwas nicht :)

Damit sind wir am Ende angelangt – Viel Erfolg bei euren Anpassungen!

idee

Ihr möchtet eine hoch performante WordPress Installation für eure Webseite – mit Nutzung von neuesten Techniken und kostenfreiem SSL Zertifikat?

Ich zeige euch Heute, wie ihr diese Installation, mit Hilfe von Easy Engine , schnell und einfach durchführen könnt. Wir nutzen aktuelle Techniken für diese Webseite, wie NGINX, NGINX Pagespeed ModulHHVM und HTTP/2.

Alles was ihr benötigt ist ein Dedizierter oder vServer, am Besten einer, auf dem bisher noch nichts weiter installiert ist – ein How To zur Einrichtung eines solchen Servers findet ihr HIER.

Ihr benötigt als OS Ubuntu 12.04/14.04 oder Debian 7 oder 8! Wenn ihr HTTP/2 benutzen möchtet, dann könnt ihr kein Debian 7 nutzen!

Easy Engine?

Was handelt sich bei Easy Engine (ee) um ein python basiertes Kommandozeilen Tool um NGINX auf Debian und Ubuntu aufzusetzen und HTML, PHP, MySQL, HHVM, Pagespeed und WordPress zur Verfügung zu stellen. Desweiteren könnt ihr mit ee auch z.B. Postfix installieren – aber das lasse ich hier und jetzt mal weg.

Easy Engine bietet 15 verschiedene Möglichkeiten WordPress zu installieren, Single Site – Multisite mit Unterverzeichnis – Multisite mit Subdomain. Diese jeweils ohne Cache, mit WP Super Cache, W3 Total Cache, Nginx Cache oder Redis Cache.

Super Tool – super einfach, aber eine Warnung:

Wenn ihr euch mit dem Verwalten eines Linux Servers nicht auskennt, dann beauftragt lieber jemanden, der das kann, denn ihr selbst seid für die Sicherheit des Servers verantwortlich.

Easy Engine installieren

Ihr wählt euch mit eurem SSH Client (Putty oder ähnliches) auf euren Server ein und führt zur Installation von Easy Engine den folgenden Befehl aus:

Damit ladet ihr das Installationsskript herunter und startet dieses, in der Folge werden benötigte Pakete vom System Installer heruntergeladen und installiert.
Während der Paketinstallation müsst ihr noch euren Namen und eure e-Mail Adresse angeben – das war alles, Easy Engine ist nun installiert und lauffähig.

NGINX Mainline installieren

Da wir ja auch in den Genuß von HTTP/2 kommen möchten, müssen wir nun die Mainline Version von NGINX installieren, denn erst ab NGINX Version 1.9.5 wird HTTP/2 angeboten

Ihr erhaltet im Verlaufe der Installation einen Usernamen und ein Passwort – diese sind für das Webinterface der Easy Engine gedacht, bitte notieren!

WordPress installieren

Mit dem folgenden Befehl installiert ihr WordPress für domain.de (Kleiner Tip: domain.de durch euren Domainnamen ersetzen :) )
Wir nutzen für die Seite HHVM, Pagespeed und Verschlüsselung

Bitte achtet darauf, dass eure Domain im DNS mit und ohne www auf die IP des Servers verweist, ansonsten erhaltet ihr einen Fehler!

Dieses Kommando übernimmt die komplette Arbeit der Installation von WordPress, dem Setup der Datenbank, der Einrichtung von HHVM und Pagespeed sowie die Beantragung und Einrichtung eines Zertifikates. Auch die Weiterleitungen von http nach https werden automatisch eingerichtet. Ihr müsst hier noch bestätigen, dass es sich bei HHVM und Pagespeed um experimentelle Features handelt und einige Plugins möglicherweise nicht arbeiten.

Im Verlauf der Installation erhaltet ihr den Usernamen und ein Passwort für die WordPress Installation – auch diese bitte notieren!

Bitte beachtet, dass die Installation von WordPress in Englisch erfolgt – ihr müsst dann noch unter den Einstellungen Allgemein auf Deutsch umstellen.

Funktionen nach installieren

Wenn ihr möchtet, dann könnt ihr mit Easy Engine auch Funktionen nachinstallieren.
Der folgende Befehl installiert z.B. W3 Total Cache nach

Pagespeed einrichten

Nach der Installation einer Seite müsst ihr noch die Pagespeed Konfiguration vornehmen, im Default sind keine Filter eingeschaltet!

HHVM von einer Domain entfernen

für den Fall, dass ihr auf Probleme mit HHVM stoßt, dann könnt ihr HHVM mit dem folgenden Befehl von einer Domain entfernen, diese Webseite läuft dann mit Standard PHP

Seiteninfo anzeigen lassen

Mit dem folgenden Kommando könnt ihr euch Informationen über eine Webseite anzeigen lassen, ihr müsst allerdings als root eingeloggt sein um dieses Kommando nutzen zu können

Die Ausgabe enthält Informationen zur Funktionen der Webseite sowie Angaben zur Datenbank

Easy Engine Info

Firewall einrichten

Ihr müsst noch ggf. folgende Ports in eurer Firewall freigeben

  • 22/TCP Inbound & Outbound: SSH
  • 80/TCP Inbound & Outbound: HTTP
  • 443/TCP Inbound & Outbound: HTTPS
  • 22222/TCP Inbound: EasyEngine Administrations Tools
  • 11371/TCP Outbound: GPK Schlüssel Server

Ihr solltet in jedem Fall auch nochmal einen Blick auf die Kommandozeilen Parameter Liste bei Easy Engine werfen – dort erhaltet ihr viele weitere Tips für dieses Tool. Bei Problemen gibt es auch einen Community Support auf der Seite.

Nun viel Spaß mit eurer schnellen, neuen WordPress Seite!

idee

vServer erstellen

In diesem How To zeige ich euch, wie ihr einen vServer mit Debian 8 installieren könnt.
Ich installieren diesen Server beim Anbieter VULTR, hier könnt ihr ab 5 USD pro Monat ziemlich schnelle vServer erhalten. Alle vServer bei Vultr laufen auf SSD Speicher, die Installation kann an 14 verschiedenen Standorten rund um die Welt statt finden – und ihr habt viele vorgefertigte Betriebssysteme zur Auswahl.

Ich möchte anmerken, dass man einen vServer nur dann installieren und betreiben sollte, wenn man zumindest Grundlegend Ahnung von einem solchen System hat – ansonsten würde ich dazu raten, die Installation und Betreuung von vServern einem Fachmann zu übertragen. Immer daran denken, im Zweifel haftet man für den Mist! Ich setze daher in diesem How To diese Grundkenntnisse voraus und werde nicht jeden Punkt im Detail erklären!

Account anlegen

Zunächst müsst ihr bei Vultr Account anlegen, dazu könnt ihr gerne meinen Affiliate Link: Bei Vultr anmelden nutzen (vielen Dank dafür!) – oder ihr nutzt den folgenden nicht Affiliate Link: Vultr.com

Neuen vServer erstellen

Sobald ihr einen Account angelegt habt, loggt ihr euch ein und erstellt unter dem Menüpunkt Deploy einen neuen vServer, hierfür wählt ihr Compute Instances, eine Location, ein Operating System (Debian in diesem Fall) und eine Server Size – in diesem Fall die kleinste Maschine.

Vultr Setup

Die optionalen Features benötigen wir für diese Installation nicht.
Ihr könnt hier allerdings – was ich empfehlen möchte – einen SSH Key für den Server hinterlegen. Diesen könnt ihr in eurem Account unter My Servers anlegen und verwalten

Vultr SSH Key

Ihr könnt euch in den FAQ ansehen, wie ein solcher Schlüssel erstellt wird, ich werde jetzt hier nicht weiter auf diesen Punkt eingehen – solltet ihr aber in jedem Fall in Erwägung ziehen.

Jetzt müsst ihr dem Kind noch einen Namen geben, diesen tragt ihr bei Server Label ein – und dann klickt ihr auf Place Order und der Server wird installiert.

Vultr Setup

In der Übersicht unter My Servers seht ihr dann den Fortschritt eurer Bestellung

Vultr Setup

Nach Abschluss der Installation erhaltet ihr eine Mail mit der IP Adresse des installierten Servers und einer Zusammenfassung der Installation. Unter My Servers steht jetzt ebenfalls die IP Adresse, ihr könnt hier auch die Kosten für diesen Server für diesen Monat sehen – mit der Installation beginnt der Zeitraum der Bezahlung.

Vultr Setup

Außerdem könnt ihr den Server von hier aus Verwalten (Manage) – was ihr auch jetzt machen müsst, damit ihr an das Root Passwort kommt. Aus Sicherheitsgründen solltet ihr dieses dann ändern. Ihr habt hier auch weitere Angaben wir Verbrauchsdaten und könnt Snapshots erstellen.
Von hier aus könnt ihr euch auch eine Konsole anzeigen lassen, damit könntet ihr euren Server verwalten – ich empfehle aber, dieses per SSH Client (Putty oder ähnliches) zu machen.

Vultr Setup

Und genau das werden wir jetzt machen, notiert euch die IP Adresse sowie das Passwort des Servers, diese Angaben benötigen wir für den nächsten Schritt.

Server Setup mit SSH Client

Ihr benötigt jetzt einen SSH Client – Putty ist hierfür sehr gut geeignet, ich selbst verwende MobaXterm und es gibt noch viele weitere.

Wenn ihr Putty startet, dann gebt ihr im Feld Host Name (or IP address) die IP Adresse eures Servers ein und klickt dann auf Open, ihr werdet nun mit dem Server verbunden

Vultr Putty

Ihr erhaltet dann eine Warnmeldung, dass der Host Key nicht bekannt ist – was logisch erscheint, und daher von euch bestätigt wird. Ihr seid dann im Login, als Usernamen gebt ihr root ein, sowie das Passwort aus eurem Server Manager. Ihr seid nun als root auf dem Server eingeloggt und solltet im Fenster root@vultr: sehen können.

Server Name (Hostname)

Der Server sollte einen Namen haben – dieser sollte zu einer Domain gehören, welche sich in eurem Besitz befindet und die IP Adresse sollte im DNS für diese Domain zu diesem Namen eingetragen sein.
Nachdem ihr also in eurem DNS Server einen passenden A Record für den gewählten Servernamen eingetragen habt, werden wir diesen Namen auf dem Server eintragen, dazu editieren wir die Datei /etc/hostname

und ersetzen hier den Eintrag vultr.guest durch den gewünschten Namen.

Hier wird nur der Servername eingetragen – nicht die Domain!

Nun ändern wir noch die Datei /etc/hosts

und ersetzen auch hier den Eintrag vultr.guest mit dem Hostnamen, Dann fügen wir noch eine Zeit ein mit der IP Adresse und dem Hostname gefolgt vom Domainnamen.

Vultr Setup

System Update

Wir führen nun ein System Update durch, um auf den neues Stand zu kommen

Es müssen noch ein paar Einstellungen angepasst werden, z.B. die Region in der ihr euch befindet

Hier wählt ihr Europa und die Zeitzone für Berlin aus.

Ich würde euch auch raten die locale zu ändern – dieser Schritt ist optional!

Hier wählt ihr de_DE.UTF-8 aus und en_US.UTF-8 ab

Vultr Setup

auch als Default locale wählt ihr de_DE.UTF-8 aus.

Danach booten wir das System neu, damit wird dann auch der geänderte Hostname aktiv.

Bei dieser Installation sind noch keine Dienste wie Webserver oder MySQL Server eingerichtet. Ihr habt ’nur‘ das Grundsystem auf dem ihr aufbauen könnt.

Ihr solltet in jedem Fall noch die folgenden Schritte in Erwägung ziehen:

  • Root Passwort ändern
  • SSH Keys für Zugriff einrichten, den SSH Dienst so ändern, dass kein Zugriff ohne Schlüssel mehr möglich ist.
  • Lokale Firewall installieren – ich empfehle hier einen Blick auf CSF
  • Einrichten einer Benachrichtigung bei SSH Login
  • Apticron einrichten für automatische Systemupdates

Das sind so die Grundeinrichtungen mit denen ihr den Server absichert.

Viel Spaß nun mit eurem neuen Server!

 

idee

Was ist HTTPS?

Beim aufrufen von Webseiten wird eine Verbindung zwischen Browser und Server hergestellt. Über diese Verbindung werden Daten ausgetauscht, etwa die Inhalte der Webseite, aber auch Eingaben wie Suchanfragen, Logins oder Formularinhalte.

Um diese Inhalte zu schützen, müssen diese für die Übertragung verschlüsselt werden, die Inhalte können dann nicht von Unbefugten mitgelesen werden (aktueller Stand der Technik vorausgesetzt).

Zur Verschlüsselung verfügt der Server über ein SSL Zertifikat, Moderne Browser überprüfen dieses Zertifikat und warnen den Benutzer vor unsicheren oder fehlerhaften Zertifikaten.

Unsichere Webseite

Warum benötig man Verschlüsselung von Daten?

Die Verschlüsselung von Daten ist in vielen Fällen gesetzlich vorgegeben, insbesondere bei der Übertragung von personenbezogenen Daten gelten strenge Regeln.
Als Anbieter einer Webseite, auf der solche personenbezogenen Daten übermittelt werden müssen (z.B. Shop), kommt man nicht um die sichere Übertragung dieser Daten herum.

Allerdings kann eine Verschlüsselung, nicht nur bei Shops, Sicherheit auch für den Anbieter der Webseite bringen. Derzeit werden offenbar Anbieter ab- bzw angemahnt, weil sie Kontaktformulare oder auch Kommentarfunktionen auf unverschlüsselt übertragenen Seiten anbieten (siehe: shopanbieter.de).

Mitte 2014 kündigte Google auch an, dass HTTPS als Ranking Signal in die Wertung einer Webseite einfließt, somit ein Punkt für die SEO Interessierten.

Was benötigt man für die Verschlüsselung einer Seite?

Im Grunde benötigt man nur eins: ein SSL Zertifikat.

Wenn man die oben erwähnte Warnung umgehen möchte, dann benötigt man ein valides Zertifikat, ein selbst erstelltes ‚Self-Signed‘ Zertifikat ist in diesem Fall nicht ausreichend.

Zertifikate gibt es von unterschiedlichen Anbietern, zu unterschiedlichen Preisen, mit unterschiedlichen Merkmalen. Ein nahezu unüberschaubares Angebot mit einer sehr breiten Preisspanne – vergleichen und ein wenig recherchieren lohnt sich schnell.

Man sollte auch unbedingt abklären, ob die eigene Webseite ggf. eine spezielle Zertifikat Funktion benötigt (z.B. Versicherung, Wildcard), bevor man sich für ein Zertifikat entscheidet.

In der Regel erhält man ein Zertifikat auch beim Anbieter seiner Webseite – in diesem Fall ist die Server seitige Integration unter Umständen sehr einfach – hier lohnt es sich in jedem Fall, sich mit seinem Anbieter in Verbindung zu setzen, bevor man ein Zertifikat bei einem Dritten bestellt, und ggf. hinterher dieses Zertifikat nicht eingebunden bekommt.

Man muss natürlich auch mit dem Anbieter des Webhostings abklären, ob die Nutzung von HTTPS im Tarif enthalten ist. Betreibt man einen eigenen Server, dann entfällt dieser Schritt, da man die entsprechenden Voraussetzungen selbst schaffen kann.

Wenn der Server kein SNI (Server Name Indication) unterstützt, dann benötigt jede Domain bzw. HTTPS Webseite, eine eigene IP Adresse, auch diesen Punkt gilt es mit dem Webhosting Anbieter zu klären!

Umstellung von Wordpress auf die Nutzung von HTTPS

Bevor die WordPress Umstellung vorgenommen werden kann, muss das Zertifikat auf dem Server installiert sein!

Prinzipiell bestehen 2 Möglichkeiten zur Nutzung von HTTPS:

  1. Umstellung der kompletten Seite
  2. Umstellung nur der Seiten, welche eine Verschlüsselung benötigen

Meiner Meinung nach, ist die Umstellung nur einzelner Seiten nicht mehr zeitgemäß und erfordert mehr Aufwand in der Einrichtung und Pflege.

Die Verschlüsselung von Seiten stellt Heutzutage kein Performance Problem mehr da – daher rate ich dazu, Punkt 1 zu verwenden, auf den sich auch diese Anleitung bezieht.

Die Umstellung von WordPress auf HTTPS erfolgt durch Anpassung der URL der Seite.

Während der Umstellung kann es passieren, dass die Webseite kurzfristig nicht – oder nicht ohne Warnung zu erreichen ist – daher am Besten den Wartungsmodus setzen – oder die Umstellung nicht gerade zur Haupt Nutzungszeit vornehmen.

Diese Einstellung nimmt man im WordPress Backend unter Einstellungen > Allgemein vor.

Dort befinden sich 2 Eingabefelder, WordPress-Adresse (URL) und Website-Adresse (URL), hier ändert man http:// in https:// ab:

HTTP Einstellung:

HTTP Einstellung

HTTPS Einstellung:

HTTPS Einstellung

Sollten diese Felder ausgegraut sein, dann ist diese Einstellung in der wp-config.php Datei konfiguriert worden – und muss in diesem Fall entweder dort aktualisiert werden, oder aber aus der wp-config.php entfernt werden.

Nach dieser Umstellung, und ggf. löschen des Caches (Browser sowie Cache Plugins) sollte die Webseite über HTTPS zu erreichen sein, und somit die Übertragung verschlüsselt statt finden.

Webseiten Umleitung einrichten

Damit beim Aufruf der Webseite immer die Verschlüsselung genutzt wird, muss noch eine entsprechende Umleitung im Webserver eingerichtet werden.

Für den Fall, dass Apache als Webserver genutzt wird, kann diese Umleitung in einer .htaccess Datei im WordPress Verzeichnis definiert werden:

Alternativ hierzu kann die Weiterleitung auch direkt in der Apache Konfigurationsdatei für die jeweilige Domain vorgenommen werden. Hierzu wird die Konfigurationsdatei wie folgt angepasst:

In beiden Fällen muss URL.de durch die entsprechende URL ersetzt werden, die DocumentRoot muss angepasst werden.

Im Falle der Nutzung von nginx als Webserver müssen die folgenden Zeilen in den {server} Block der jeweiligen Domain aufgenommen werden:

Datenbank anpassen

Beim Erstellen eines Blog Beitrages oder einer Seite, werden eingefügte Bilder von WordPress mit einem hart kodierten Link in den Beitrag eingefügt.

Bereits bestehende Einträge müssen daher direkt in der Datenbank angepasst werden, damit beim Aufruf der Webseite keine Fehlermeldung über unsichere Inhalte ausgegeben wird.
Sollten vor der Umstellung auf HTTPS keine Beiträge vorhanden sein, kann der folgende Schritt ausgelassen werden!

Folgende Arbeiten erfordern Änderungen an der Datenbank – daher unbedingt eine Sicherung der Datenbank anlegen!

Die Anpassung der Datenbank kann über einen SQL Administrationstool – wie phpmyadmin, oder die SQL Konsole – vorgenommen werden.
Folgende SQL Befehle müssen für die Anpassung ausgeführt werden:

wp_options SET option_value = replace(option_value, ‚http://URL.de‘, ‚https://URL.de‘) WHERE option_name = ‚home‘ OR option_name = ’siteurl‘;
UPDATE wp_posts SET guid = replace(guid, ‚http://URL.de‘,’https://URL.de‘);
UPDATE wp_posts SET post_content = replace(post_content, ‚http://URL.de‘, ‚https://URL.de‘);
UPDATE wp_postmeta SET meta_value = replace(meta_value, ‚http://URL.de‘, ‚https://URL.de‘);

Auch hier bitte wieder URL.de durch die entsprechende URL ersetzen.

UPDATE:

Obwohl die vorgenannte Suchen und Ersetzen Option in MySQL funktioniert, werden serialisierte Werte in diesem Fall gebrochen, daher ist diese Methode nicht für alle Fälle geeignet.

Bitte benutzt ein Skript zur Anpassung der Datenbank, z.B. das DATABASE SEARCH AND REPLACE Skript von interconnectit.com oder ein entsprechendes Plugin – wie Better Search Replace um die URL in der Datenbank korrekt zu ersetzen!

Seitenkontrolle

Zum Abschluss der Umstellung auf HTTPS werden nun die Seiten kontrolliert, beim Aufruf sollte der Browser nun folgenden Status anzeigen:

Webseite sicher

Für den Fall, dass hier kein grünes Schloss angezeigt wird, werden unter Umständen noch Ressourcen von nicht verschlüsselten URLs geladen.

Durch Anklicken des Schlosses kann der Grund heraus gefunden werden, warum die Webseite als nicht sicher bewerte wird, oftmals handelt es sich um Ressourcen, die von nicht verschlüsselten Quellen geladen werden. Diese unsicheren Ressourcen können mittels der Entwickler Konsolen der Browser identifiziert und durch sichere Aufrufe ersetzt werden.

Unsichere Webseiten Inhalte können auch durch einen SSL-Check bei Jitbit gefunden werden.

Cloudflare User aufgepasst!

Cloudflare User können ein eigenes Zertifikat nur dann nutzen, wenn Sie einen Business oder Enterprise Plan für die Webseite benutzen – die Kosten hierfür fangen bei 200 USD pro Monat an.

Cloudflare User aufgepasst

Im Gratis oder Pro Plan besteht die Möglichkeit ein gratis Zertifikat zu nutzen, in diesem Fall ist die Verbindung Browser -> Cloudflare verschlüsselt, die Verbindung Cloudflare -> Server aber nicht (Flexible SSL). Alternativ kann man auch einen Modus wählen, in dem dann auch die Verbindung zum Server verschlüsselt ist (Full SSL oder Full SSL (strict)).

Cloudflare SSL Optionen

In allen Fällen endet die Verschlüsselung aus Browser Sicht immer bei Cloudflare!

Meiner Einschätzung nach, ist dieses Vorgehen mit dem deutschen Datenschutz nicht konform zu realisieren. Cloudflare hat hier die Möglichkeit, an die unverschlüsselten Daten zu kommen. Hier sollte man sich unbedingt vor der Einrichtung weitergehend infomieren. Allerdings verstößt vermutlich schon die bloße Nutzung von Cloudflare als CDN Anbieter gegen den deutschen Datenschutz, da zu Statistik Zwecken personenbezogene Daten, wie IP Adressen, gespeichert werden.

(Beitragsbild: Pixabay)

idee

WordPress bietet die Funktion andere Blogs über eine Verlinkung in einem Beitrag zu informieren (Pings). Die Gegenseite kann dann diesen Ping zum Beispiel zu den Kommentaren als Rücklink hinzufügen.
Wenn man also einen Link in einen Beitrag einfügt, dann versucht WordPress die Gegenseite zu erreichen, wenn du deinen eigenen Artikel verlinkt, z.B. über Link einfügen/ändern ‚Oder verlinke auf bestehende Inhalte‘
Self Ping
Dann erscheint unter deinem verlinkten Eintrag wiederum ein Backlink auf den verlinken Eintrag. Das ist dann ein sogenannter ‚Self-Ping‘. Dieser kann gewünscht sein, in der Regel dürfte er aber eher lästig sein.

Um den Self Ping zu vermeiden kannst du folgende Methoden nutzen:

1. Relativen Link nutzen

Dabei darfst du nicht die volle URL für die Verlinkung nutzen:
z.B. http://wpreview.de/bruteprotect-security-plugin

sondern nur den relativen Link:
z.B. /bruteprotect-security-plugin

Bitte auf den führenden / achten! Außerdem musst du beachten, dass der visuelle Editor das ggf. wieder durch den vollen Link ersetzt, besonders, wenn du den Link Button im Menü genutzt hast – im Zweifel musst du in die HTML Anzeige verwenden!

2. Anpassen der functions.php Datei von WordPress

Hierbei musst du Änderungen an der (Theme) functions.php Datei vornehmen, dafür muss man dann nicht jedes Mal an die Verwendung eines Kurz Links denken. Die folgenden Zeilen müssen zur functions.php hinzugefügt werden:

Ich würde diese Methode nur erfahrenen Nutzern empfehlen, und ihr müsst daran denken, dass nach einem (Theme) Update die Änderung verschwunden sein können.

3. Plugin No Self Pings nutzen

Das Plugin No Self Pings ist ziemlich alt und länger nicht mehr upgedatet worden, daher auch im Plugin Directory mit einer entsprechenden Warnung versehen, aber es funktioniert immer noch einwandfrei. Im Prinzip macht es nicht mehr als in Punkt 2. beschrieben

4. Disabler Plugin nutzen

Das Disabler bietet unter anderem auch die Möglichkeit Self Pings zu unterdrücken. Dazu kann es noch einige andere Funktionen ausschalten (disablen), wie Autospeicherung, Post Revisions etc.

5. Pingback deaktivieren

Das ist die Keulen Methode – einfach in den Blog Einstellungen die Pingbacks global deaktivieren
pingback Einstellungen
Damit ist diese Funktion für das komplete Blog deaktiviert, aber damit sind auch die Pingbacks weg!