WordPress Website komplett per HTTPS verschlüsselt anzeigen

PabstWP Beitragsbild HTTPS

Die Kommunikation zwischen Webserver und Browser findet über das Hypertext Transfer Protocol (HTTP) statt. Während beim normalen HTTP alle Daten im Klartext übertragen werden, sind sie bei der Verwendung von HTTPS verschlüsselt und werden abhörsicher übertragen (mehr Details bei Wikipedia). Ob eine verschlüsselte Verbindung besteht, erkennt man an einem (grünen) Schlosssymbol und ggf. dem Zusatz “https://” in der Adresszeile des Browsers.

HTTPS-Kennzeichnung im Browser
Das grüne Schloss und das Protokoll „https“ zeigen an, dass die Website verschlüsselt übertragen wird (Hier im Chrome Browser). Beim Klick auf das Schloss werden Informationen zur Verschlüsselung und zum SSL-Zertifikat angezeigt.

In Onlineshops und sozialen Netzwerken beispielsweise ist HTTPS mittlerweile Standard, bei normalen privaten und gewerblichen Websites und Blogs noch nicht. In diesem Beitrag möchte ich aufzeigen, wie einfach man eine WordPress-Website ohne zusätzliche Plugins auf HTTPS umstellen kann und was dabei zu beachten ist.

Warum HTTPS?

Es gibt einige gute Gründe, eine WordPress-Website verschlüsselt per HTTPS auszuliefern und nicht unverschlüsselt per HTTP. Für mich sind die wichtigsten Argumente für HTTPS:

  • Datenschutz: Daten, die Besucher auf meiner Website eintragen und absenden, werden verschlüsselt zu meinem Server übertragen und sind somit während der Übertragung sehr gut geschützt. Die Übertragung persönlicher Daten findet z.B. im Kontaktformular und im Kommentarformular statt.
  • Sicherheit: Mein WordPress-Backend – insbesondere das Login-Formular – ist mit einer verschlüsselten Verbindung wesentlich besser vor Hackern geschützt als mit einer unverschlüsselten.
  • SEO: Seit einigen Monaten wertet Google es als positiven Rankingfaktor, wenn eine Website per HTTPS verschlüsselt angeboten wird (HTTPS as a ranking signal), wobei man das zum jetzigen Zeitpunkt sicher noch nicht überbewerten sollte.

Voraussetzungen

Zunächst einmal benötigt man ein Webhosting-Paket, in dem für die eigene Domain ein SSL-Zertifikat genutzt werden kann. Die Vielfalt ist hier sehr groß und reicht von kleinen Webspace-Paketen mit SSL-Zertifikaten, die vom Provider bereitgestellt werden bis hin zu selbstadministrierten Serverprodukten (Virtual Server oder Rootserver), bei denen die Nutzung mehrerer SSL-Zertifikate für verschiedene Domains möglich ist. Am besten erkundigt man sich direkt bei seinem Provider des Vertrauens, welches Paket hierfür geeignet ist. Ich nutze für meine Website pabstwp.de beispielsweise einen WebServer Basic* von Host Europe.

Im zweiten Schritt benötigt man natürlich noch ein SSL-Zertifikat. Auch hier ist wiederum die Vielfalt groß und teilweise vom Webhosting-Provider abhängig. Bei der Art der Zertifikate unterscheidet man grob zwischen “Domain Validation”, “Organisation Validation” und “Extended Validation”, wobei die erste Variante die günstigste und am weitesten verbreitete ist. Einen guten Einblick in das Thema bietet ein Beitrag von Mike Kuketz.
Ich nutze für meine Website ein “Domain SSL Zertifikat” von GlobalSign für 50 € pro Jahr, welches ich direkt von meinem Provider Host Europe habe beantragen und auf meinem Webserver installieren lassen.

Schritte

Hat man nun also ein SSL-Zertifikat erworben und auf seinem Webserver installiert, sind noch 3 Schritte notwendig, um die eigene WordPress-Website über HTTPS verfügbar zu machen.

1. Einstellungen anpassen

Im WordPress-Backend muss unter –> Einstellungen –> Allgemein die URL der Website von http://meine-domain.de auf https://meine-domain.de geändert werden.

WordPress Einstellungen Allgemein - URLs mit HTTPS

2. URLs anpassen

WordPress speichert vielfach absolute URLs ab, z.B. bei in Beiträgen eingebetteten Medien oder in Menüs. Um sich die Umleitung (Punkt 3) für diese URLs zu sparen, sollte man sie von http:// auf https:// ändern. Ich verwende hierzu gern das sehr zuverlässige Tool Database Search And Replace Script In PHP, welches ich schon einmal in meinem Beitrag WordPress-Website auf anderen Server umziehen in 3 Schritten erwähnt habe. In den Einstellungen des Tools genügt es, die URL der Website einmal mit „http“ und einmal mit „https“ einzutragen. Am Beispiel meiner Website sieht das wie folgt aus:

Search and replace - WordPress mit HTTPS

Vor dem Live Run sollte man den Dry Run laufen lassen und sich die voraussichtlichen Änderungen anschauen. Eventuelle Probleme werden hier bereits sichtbar.

Achtung! Vor der Änderung unbedingt ein Datenbank-Backup anfertigen und nach Beendigung der URL-Anpassung das Search-and-Replace-Skript wieder löschen!

3. 301-Weiterleitung per .htaccess erstellen

Es gilt zwingend zu verhindern, dass weiterhin Inhalte unverschlüsselt abrufbar sind. Zum Einen erscheint bei gemischten Inhalten eine Warnung im Browser, zum Anderen sollte aus SEO-Gründen natürlich Duplicate Content vermieden werden und alle Inhalte nur noch über HTTPS erreichbar sein. Die sicherste Lösung ist eine 301-Weiterleitung aller unverschlüsselten Anfragen mittels eines Eintrags in der .htaccess-Datei im Wurzelverzeichnis der Website. Eine Googlesuche liefert eine Vielzahl von Varianten für Weiterleitungen und ich habe mich für die von Redirect301.de entschieden:

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

Zu beachten

Hier noch einige Hinweise:

  • Ich empfehle, alle Seiten einer Website per HTTPS auszuliefern und nicht nur Seiten mit Formularen und das Backend. Das ist für Besucher transparenter und technisch auch leichter einzurichten. Will man nur einzelne Seiten verschlüsselt anzeigen, benötigt man ein Plugin wie WordPress HTTPS (SSL).
  • Die Performance mit HTTPS ist etwas schlechter als mit HTTP und die Antwortzeiten des Servers werden sich geringfügig erhöhen. Ggf. sollte man sich vorab beim Webhoster erkundigen.
  • Bei Einsatz von Caching Plugins (z.B. Cachify oder Cache Enabler) ist darauf zu achten, nach der Umstellung den Cache zu leeren, da sonst noch unverschlüsselt gecachte Seiten ausgeliefert werden.
  • Aus SEO-Sicht ist unbedingt darauf zu achten, eine 301-Weiterleitung von HTTP auf HTTPS einzurichten (Siehe oben). Zusätzlich empfiehlt sich auch der erneute Eintrag der https-Domain in den Google Webmaster Tools, um einen Ranking-Verlust zu vermeiden. Eine detailliertere Betrachtung der SEO-Aspekte gibt es z.B. hier oder in der Google-Suche.
  • Nicht zu vergessen sind die Kosten für das SSL-Zertifikat und ein passendes Webhosting-Paket. Wer es komfortabel mag und Beantragung und Installation dem Webhoster überlässt, muss ein bisschen mehr Geld in die Hand nehmen. Wer hingegen auf seinem Server Zertifikate selbst installieren kann und vor Schlüssel- und Zertifikatsdateien nicht zurück schreckt, findet bei Google unzählige günstige oder gar kostenlose Angebote für SSL-Zertifikate.

Referenzen

Gemäß dieser Vorgehensweise habe ich folgende Websites erfolgreich auf HTTPS umgestellt:

Diese Websites übertragen alle Inhalte zwischen Webserver und Browser ausschließlich per HTTPS, ohne hierfür ein zusätzliches WordPress-Plugin zu benötigen.

(*Affiliate Link)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit * markiert.

Bitte benutze Pastie.org oder Pastebin.com, um Code in Deinem Kommentar zu veröffentlichen.

*

23 Kommentare

  1. Danke für das Tutorial. Hat mir sehr geholfen und bei meinem Blog game-dna.de reibungslos geklappt. Nochmals ein großes Dankeschön 🙂

    (Bin über deinen Host Europe-Kommentar auf diese Anleitung gestoßen)

  2. Danke für die Anleitung.

    Ich bin genau danach vorgegangen, habe nun aber folgendes Problem:

    Frontend perfekt, wenn ich mich aber ins Backend einloggen will mit xyz.de/wp-admin kommt folgende Seite mit Fehlermeldung: xyz.de:443/wp-admin/ und ERR_EMPTY_RESPONSE.
    Rufe ich xyz.de/wp-admin/ auf, komme ich auch zur Login Seite. Nur der Slash hinter wp-admin macht den Unterschied. Aber warum? Wie kriege ich das behoben oder wo liegt der Fehler?

    Ich hoffe ihr könnt mir helfen :/

        1. Sowohl Seiten als auch Beiträge können ohne den Slash am Ende aufgerufen werden. Diese leiten perfekt auf https://… weiter.

  3. Hallo! Ich habe bei mir in WordPress die URL der Website auf https umgestellt, das Backend ist auch unter https erreichbar, allerdings gibt es für das Frontend keine Seiten, die SSL verschlüsselt sind. Sobald ich die Domain mit https im Browser eingebe, leitet sie auf http weiter. Verstehe nicht wo das Problem liegt.
    Kann mir Jemand helfen?

    Grüße,
    Dave

  4. Moin,

    ich habe die Seite umgestellt auf https: Grafiken usw. wurden in den Beiträgen/Seiten in https:// umeditiert. Die Einstellungen unter Allgemein natürlich auch.

    Nur eine Sache gelingt nicht: Wenn ich aus der Mediathek eine Grafik neu einfügen will (egal ob schon vorhanden oder eine neu hochgeladene, wird wiederum http:// verwendet, so dass ich alle Grafiken, die ich einfügen will, im Texteditor manuell auf https umändern müsste.

    Hat jemand eine Idee?

    LG Jörg

  5. Eine gut verständliche Anleitung… Ich bin grade dabei umfangreiche Änderungen an verschiedenen Websites vorzunehmen- hierbei sollen auch einige auf https umgestellt werden. Nicht alleine wegen dem Google Ranking erachte ich das als wichtig, sondern auch in Bezug auf die Eingabe von persönlichen Daten in Onlineshops usw.

  6. Hallo, wenn ich mir bei meinem Webhoster ein SSL-Zertifikat gekauft habe, muss ich dann meine WordPress-Seite noch irgendwie mit meinem Schlüssel verknüpfen? Oder reicht es, wenn ich das Zertifikat gekauft habe (z.B. bei Strato) und dann einfach meine URL auf https ändere? Danke und beste Grüße, Flo

    1. Teste doch einfach mal, ob deine Website per https erreichbar ist. Falls ja, kannst du die WordPress-Einstellungen wie oben beschrieben ändern. Falls nicht, frage bei deinem Webhoster nach, was zu tun ist.

  7. Hallo,

    mich würde auch interessieren, wie man einzelne Site von einer „großen“ WordPress Multisite von http zu https umleitet.

    Heißt, ich habe eine WordPress Multisite Installation auf der mehrere Domains per Domain-Mapping laufen, einige der MultiSites möchte ich gerne ab sofort auf https umleiten. Kann mir jemand sagen, wie ich das am besten machen kann? Insbesondere bei dem htaccess Krams bräuchte ich Hilfe…

    Denn ich habe ja für die komplette Installation nur eine einzelne htaccess und ich will ja nicht alle Sites auf https umleiten.

    Es dankt
    Sven

    1. Für diese Anforderung ist es evtl. einfacher, das Plugin WordPress HTTPS (SSL) zu verwenden und nur auf dem gewünschten Websites zu aktivieren. Um dann alle Seiten und Beiträge der Website per HTTPS anzuzeigen, muss in der Einstellung „URL-Filter“ lediglich ein / eingetragen werden.
      Eine Anpassung der .htaccess ist in diesem Fall nicht notwendig.

    2. Hallo Sven,

      mich würde in dem Fall interessieren:
      Du verwendest üblicherweise Second-Level-Domains oder Subdomains?
      Wie löst Du, dass pro IP nur ein Single-Domain-Zertifikat oder ein Multi-Domain-Zertifikat mit max. 3 Domains verwenden kann? Hast Du zusätzliche IP-Adressen geordert?
      Oder nutzt Du Subdomains und dann ein Wildcard-Zertifikat?

      Danke, Grüße Denis

  8. Hallo,
    ich habe meine WP Seite mit einer Verschlüsselung https//: vom Anbieter gehostet. Nun kann ich für ein WordPress Plugin „EasyOptinSlyder“ den nach dem Installationsprozess des Plugins für die Aktivierung erforderlichen Lizenzschlüssel nicht automatisch generieren. Hierbei wird die Domain abgefragt und es ist http voreingetragen. Da das Plugin ja offenbar einwandfrei auf meiner (https) Seite installiert wurde, kann man den Aktivierungscode als http generieren und dann auf https übertragen (und wenn ja, wie)?
    Ist das Problem überhaupt bei anderen WP Plugins schon aufgetreten oder bekannt?
    Danke für Hilfe!
    Gruß
    Karsten

    1. Am Besten fragst du mal beim Plugin-Entwickler nach. Sinnvollerweise sollte die Aktivierung an die Domain gebunden sein, und zwar ohne Berücksichtigung des Protokolls.
      Probleme bei anderen WordPress Plugins sind mir bis jetzt nicht bekannt.

  9. Bei StartSSL.com bekommt man auch ein kostenloses SSL-Zertifikat, was für den Anfang mehr als ausreicht. Ich setze dies auf all meinen privaten Webseiten ein, es wird von allen gängigen Browsern akzeptiert.