WordPress Blog von http auf https umstellen

Hier möchte ich kurz beschreiben wie man seinen WordPress Blog von http:// auf https:// umstellen kann. Voraussetzung ist, dass für die Blog Domain bereits ein Zertifikat eingerichtet ist. Also die Domain schon unter https://domain.tld erreichbar ist. Die Website, die ich hier für die Umstellung nehme, ist die von meinem Schwager, da ich meine bereits umgestellt habe.

Es wird nicht nur das Backend umgestellt, sondern die ganze Webseite.
Deshalb müssen auch keine Konstanten in der wp-config.php definiert werden.
Durch das umstellen der ganzen Webseite wird sich das positiv auf das Google Ranking auswirken und auch Besuchern eine höhere Sicherheit angezeigt. Natürlich kommt hinzu, dass keine Daten mehr unverschlüsselt übertragen werden, was ja nicht nur bei Shops interessant ist.

Zur Umstellung:

Im Backend unter „Einstellungen > Allgemein“ die URLs von http://… aud https://… ändern und Speichern. Danach wieder neu Anmelden.
Falls die Felder ausgegraut sind habt ihr diese in der wp-config.php definiert und müsst sie dort ändern.

wp_ssl_umstellem_1

Eigentlich war das schon das wesentliche. Allerdings müssen wir jetzt noch den bestehenden Content anpassen. Dies machen wir mittels Search&Replace in der Datenbank.

Ich verwende dafür, da es sich für mich bewährt das Better Search Replace Plugin. Also das Plugin installieren und Aktivieren.

wp_ssl_umstellem_2

Dann unter „Werkzeuge > Better Search Replace“ öffnen. Bei „Suchen nach“ die Alte Blog URL eintragen und bei „Ersetzen durch“ die gleiche URL nur mit https. Bitte immer die vollständige Blog URL verwenden da es sonst zu Problemen kommen kann.
Danach alle Tabellen auswählen und den Haken bei „Auch GUIDs ersetzen“ setzen. Es kann nach Wunsch auch erst ein Testlauf gemacht werden. Damit die Änderungen endgültig durchgeführt werden, muss der Haken auf jeden Fall entfernt werden.
Man sollte vorher natürlich seine Datenbank sichern!

wp_ssl_umstellem_3

Nachdem die Änderungen durchgeführt wurden erscheint folgende Meldung

wp_ssl_umstellem_4

Damit sollten jetzt alle Blog URLs von http auf https umgestellt sein und das Plugin kann wieder deaktiviert und deinstalliert werden.

In Chrome sollte die Webseite dann mit einem grünen Schloss angezeigt werden.
Wenn nicht alle Inhalte mittels https ausgeliefert werden, ist das Schloss grau und nicht grün. Man erhält in der URL-Leiste einen Hinweis. Wenn das der Fall ist, muss noch in seinen Anpassungen (Widgets, PHP Dateien, usw.) suchen, ob dort noch URLs enthalten sind, die nicht mit https anfangen und diese umstellen.

wp_ssl_umstellem_5

Zusätzlich sollte man jetzt noch alle Aufrufe der Webseite auf die https URL umleiten. Dafür kann man mit folgendem Eintrag zusätzlich in die .htacssess einfügen.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

Viel Spaß beim Umstellen.

73 Gedanken zu „WordPress Blog von http auf https umstellen“

    1. Hallo Michael,

      Wenn die Links in der Datenbank und nicht im Code (z.B. functions.php, style.css) stehen und es nicht noch vorherige URLs gibt die nicht richtig umgestellt wurden. Dann sind alle umgestellt.

  1. Vielen Dank für ihre Hilfe! Durch das Tutorial konnte ich meinen Blog binnen wenigen Minuten auf das sicherere https:// umstellen.

    Viele Grüße
    Daniel

  2. Hallo Daniel,
    erst einmal Danke für das Tutorials. Folgende Fragen zu einer komplexen Umstellung von http:// auf https:// habe ich bei der Planung meiner sehr umfangreichen Webseite.

    Bei dem Plugin „Better Search Replace“ muss bei einer Domain mit einem Unterverzeichnis angegeben werden bei
    search: http://abc.de/xy/ oder http://abc.de/xy
    replace: https://abc.de/xy/ oder https://abc.de/xy

    Werden die URL folgender Plugins mit dem genannten Modul auch geändert:
    – SEO Smart Links
    – Broken Link Checker
    – Quick Redirects
    – TablePress

    Vielen Dank für Deine Unterstützung

    1. Hallo Michael,

      Normalerweise sollte das auch ohne Angabe des Unterverzeichnisses funktionieren. Woher kommen den die Unterverzeichnisse.

      Solange die Plugins ihre Daten in der Datenbank speichern sollte die URLs auch für diese geändert werden. Allerdings müsste man das im Zweifelsfall einmal testen da ich die Plugins nicht im Einsatz habe.

      Auf jeden Fall vorher ein Datenbank Backup machen!

  3. Hallo Daniel,
    danke für die schnelle Antwort. Die Antwort auf Deine Frage lautet:
    Es gibt eine Domain abc.de und vier WP Installationen mit jeweils eigenen Datenbanken also:
    http://abc.de/x1/
    http://abc.de/x2/
    http://abc.de/x3/
    http://abc.de/x4/

    Bei dem Plugin „Better Search Replace“ wird für die Eingabe zum Search und Replace unterschiedlich auf Beiträgen zum Thema argumentiert:

    search: http: –> replace: https:

    Alternative
    search: http://abc.de/x1/ oder http://abc.de/x1
    replace: https://abc.de/x1/ oder https://abc.de/x1

    usw.

    Warum soll ich die ganze URL ersetzen, wenn es auch so
    search: http: –> replace: https:
    geht. Damit erwische ich doch Alles was ich in der Datenbank ändern möchte?

    Du schreibst in Deinem Tutorial „Bitte immer die vollständige Blog URL verwenden da es sonst zu Problemen kommen kann“.

    Vielen Dank für den Rat.
    Michael

    1. Hallo Michael,

      Ich würde trotzdem beim Bei „Better Search Replace“ http://abc.de/ mit https://abc.de/ ersetzen. Es kann ja sein das von der einen Installation Links auf die andere verweisen. Diese würden dann mit ersetzt werden. Du willst ja eh alle Seiten umstellen oder? Ich würde am Ende auch immer den / mit angeben, weil grade bei Verzeichnissen dann die Verdunkelungsgefahr nicht so groß ist.

      http: könnte noch funktionieren. aber ich habe schon erlebt das nur das dann auch Optionen geändert werden die man eventuell nicht geändert haben möchte. z.B. wenn in einer Option ein Verzeichnis steht das so „/dir/http/domain/“ aussieht.
      Ich habe das geschrieben weil das Tutorial sehr allgemein gehalten ist. und ich vermeiden will das es zu genantem Problem kommt. Außerdem gibt es eventuell ja auch links die auf andere seiten (externe) verweisen die nicht auf https umgestellt wurden. Die will man ja nicht geändert haben.

  4. Hallo Daniel,

    folgendes hat funktioniert:
    – Let‘ Encrypt Zertifikate einrichten
    – Ändern von http:// –> https:// im Admin
    – Better Search Replace aktivieren

    Alle Einträge einer Tabelle im Plug TablePress müssen manuell umgestellt werden!

    Probleme gibt es bei internen Links zum Beispiel in einem Beitrag:

    https://abc.de/2016/03/wir-leben/austin/
    Nach Aufruf folgende Meldung:
    Not found: The requested URL /2016/03/wir-leben/austin/ was not found on this server.

    Offensichtlich wird die Domain intern nicht berücksichtigt.

    Woran kann das liegen?

    Schon einmal vielen Dank für den Tipp.
    Michael

  5. Hallo Daniel,

    ich habe die Einstellungen Permalinks mit „Änderungen übernehmen“ bestätigt. Cache ist deaktiviert. Das Ergebnis ist das gleiche bei internen Links. Es wird die Domain „verschluckt“ …
    Auch bei Bildern ist das so. Also ein ganz generelles Problem.

    Aktuell bin ich etwas ratlos

  6. Hallo Daniel,

    die Hauptdomain http://abc.de/ und
    http://abc.de/x1/
    http://abc.de/x2/
    http://abc.de/x3/
    sind aufrufbar und mit „grünem Schloss“ versehen. Auch der Test mit „SSL Insecure Content Fixer“ zeigt beim Zugriff kein Problem, nur bei den internen Links kommt der Fehler.

    Kann es an der htaccess liegen? Der Eintrag

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    ist vorhanden. Vielleicht ist er bei meiner Konstellation nicht richtig?

  7. Hallo Daniel,
    danke für die fachkundige Unterstützung. Dieser Code muss zusätzlich relativ weit oben in der htaccess eingebunden werden:

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    … sonst funktionieren die internen Links nicht.

  8. Hallo Daniel,

    Erstmal ein Lob für deinen tollen Beitrag. Habe alles so gemacht, wie es im Beitrag stand, bekomme aber nun beim Aufruf meiner Seite folgenden CloudFlare Error: „Error 522 – Connection timed out“. Passiert aber nur, wenn ich über https auf meine Seite zugreife.

  9. Dieser Blog ist der Wahnsinn! Danke!

    Noch mal zur Bestätigung:

    Ich ersetze Deinen Code mit dem alten der .htacssess-Datei richtig?

  10. Wenn ich meine Seite beispiel.de aufrufe, wird die Seite ohne Zertifikat angezeigt. Erst wenn ich in der Seite eine Seite anklicke, wird die Seite mit Sicherheitsprotokoll angezeigt. Was kann ich dagegen tun?

  11. Hallo Daniel,

    Danke :-) Leider verliert man bei der umstellung alle share count – die gehen auf nul – Ich meine Facebook nicht – aber alle andren.

    Gibt es hier eine Lösung?

    1. Hab so auch keine Lösung dafür. Eigentlich sollten das die Social Netzwerke unterstützen da ja im moment viele Seiten umgestellt werden. Aber wichtiger als Counts ist, das Artikel geshared werden meiner Meinung nach. Die Shares bleiben ja erhalten!

  12. Hallo Daniel,

    ich habe in den letzten Tagen alle von mir betreuten Projekte mit Zertifikaten von Let’s Encrypt ausgegstattet und bin dabei so vorgegangen, wie oben beschrieben. In meinem eigenen Blog habe ich jedoch das Problem, dass irgend ein Plugin einen Google Font einbinden will und dafür http statt https nutzt. Der Link wird dann im Hook geladen und ist daher nicht einfach so zu ändern. Ich habe das Plugin noch nicht identifizieren können und suche nebenbei nach einer Möglichkeit, Links im Seitenheader per Script zu ändern.

    Das mal so als Hinweis auf mögliche Fallstricke bei der Umstellung.

  13. Habe eine großen Fehler gemacht. Habe ohne Weiteres und ohne es zu wissen bei den Einstellungen den URL von http zu https umgestellt. Jetzt komme ich nicht mehr auf meine Seite bzw die Seite wird garnicht mehr angezeigt. Kann man da noch etwas machen/ändern? Brauche dringend Hilfe!
    Lg

  14. Hallo Daniel,

    ich habe in den Settings den link von http auf https umgeändert, bevor meine Webseite über https erreichbar war. Jetzt kann ich mich nicht mehr einloggen. Wie komme ich da wieder rein, um das umzuändern?

    Vielen Dank schon mal.

  15. Hei Daniel!

    Hmmm, direkt nachdem ich Deinen ersten Schritt ausgeführt und statt http „https“ rein gesetzt habe und es gespeichert habe, ist meine Seite verschwunden. Ich kann mich nicht mehr einloggen, meineseite.de/wp-login.php funktioniert nicht. Wie komme ich da wieder rein?!

    Grüße, Arthur

  16. Vielen Dank Daniel, sehr wertvoller Beitrag! (vor allem in Kombination mit dem let’s Encrypt Tutorial für all-Inkl)

    Da einige auch aus SEO Gründen ein SSL-Zertifikat einrichten könnte man noch erwähnen, dass die eigene Seite mit https bei der Search-Console separat eingetragen werden sollte (um z.B. in der Zukunft Fehler im Blick zu haben).

    Super Artikel, vielen Dank!

  17. Hm, immer noch zwei Fragen, die mich beschäftigen. Externe Links werden nicht automatisch auf https umgeleitet, trotz Eintrag des Codes in der Datei. Ob der an der richtigen Stelle sitzt?

    Ebenso Google Search Console. Die Seite mit https zusätzlich hinzufügen oder die alte löschen?

  18. Hallo,

    ich habe auf anderen Seiten folgenden htaccess Zusatz gefunden:
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    Ist das deckungsgleich mit dem von dir angegebenen Code?

    Und wo genau in der htaccess sollte der Code eingefügt werden? Habe woanders gelesen direkt unter # END WordPress. Du schreibst, relativ weit oben in der htaccess. Was ist korrekt?

    Meine Struktur sieht aktuell so aus und ich habe den Code ganz unten eingefügt:

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ – [L]

    # Domain Mapping RewriteConditions

    # END WordPress

    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    1. Ups, da hat irgendetwas meinen Code abgeschnitten. Hier nochmals, nur den Code der htaccess in aktueller Form:

      Meine Struktur sieht aktuell so aus und ich habe den Code ganz unten eingefügt:







      # BEGIN WordPress

      RewriteEngine On
      RewriteBase /
      RewriteRule ^index\.php$ – [L]

      # Domain Mapping RewriteConditions


      # END WordPress

      RewriteEngine On
      RewriteCond %{HTTPS} !=on
      RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

      Fehlt bei dem Zusatz ganz unten nicht auch ‚ ‚ ?

    2. Das kann ganz oben gemacht werden weil die regel dann frühzeitig gezogen wird und nicht erst noch die anderen abgearbeitet werden müssen. Funktionieren tut unten aber auch. Daher gibt es kein richtig oder falsch in dem Fall.

  19. Wieso übernimmt das Ding die ganzen Ausdrücke in eckigen Klammern nicht?

    Ups, da hat irgendetwas meinen Code abgeschnitten. Hier nochmals, nur den Code der htaccess in aktueller Form:
    Meine Struktur sieht aktuell so aus und ich habe den Code ganz unten eingefügt:
    IfModule mod_gzip.c
    IfModule
    IfModule mod_deflate.c
    IfModule
    IfModule mod_expires.c
    IfModule
    IfModule mod_headers.c
    IfModule

    # BEGIN WordPress
    IfModule mod_rewrite.c
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ – [L]

    # Domain Mapping RewriteConditions

    IfModule
    # END WordPress

    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    Fehlt bei dem Zusatz ganz unten nicht auch IfModule mod_rewrite.c /IfModule ?

  20. Bei meiner Konstellation bewirkt der angegebene htaccess Eintrag
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    leider, dass meine Weiterleitungen nicht mehr funktionieren. Es ist so eingerichtet gewesen, dass bspw. http://www.xyz.at auf die http://www.hauptdomain.at/verzeichnis weitergeleitet wurde. Das funktioniert immer noch nach der https Umstellung einwandfrei, so lange ich den oben angebenen Eintrag in der htaccess nicht verwende.

    Muss der Eintrag zwingend in der htaccess stehen? Wie kann ich überprüfen, ob ich den Zusatz überhaupt brauche? Nach meiner Einschätzung läuft meine komplette Seite über https ohne weiteres zutun.

    1. Für die Frage warum, kannst du einen meinen nächsten Kommentare lesen da sollte es drin stehen. Ist also nicht zwingend notwendig. In deinem fall muss man den Eintrag auf die eine Domain beschränken die auf https umgeleitet werden soll. Müsstest mal bei Google suchen ich schaffe das leider grade nicht.

  21. ..Puh..das hat super geklappt..bin bei der Domainfactory und absoluter Laie in Bezug auf WordPress Backend… Wofür die Änderung in der htaccess ist, entschließt sich meinem Verständnis..ich habs mal reinkopiert..ging aber alles vorher schon prima…danke für die Anleitung..

    1. Der Eintrag ist dafür das auch Suchmaschinen mit bekommen das umgestellt wurde. Oder wenn du deine URL mit http eingibst du nicht erst auf der http Seite landest sondern direkt auf https.

  22. Hey Daniel,

    ich lese nun immer wieder auch diesen Eintrag:

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

    Welcher ist den nun richtig?

    Liebe Grüße
    Ingo

  23. Hallo Daniel,

    vielen Dank für deine ausführlichen Erklärungen zur https-Umstellung. Auch als Laie auf diesem Gebiet konnte ich dir so gut folgen, dass ich die Umstellung hinbekommen habe.

    Eine Frage ist allerdings offen: Ich nutze All-inkl. und habe entsprechend deiner Anleitung (https://dhue.de/freies-lets-encrypt-zertifikart-all-inkl/) das Lets-Encrypt-Zertifikat eingestellt.

    Unter Punkt 3 hast du einen Screenshot eingestellt. Ich hab bei mir neben der Option „SSL aktivieren“ noch den Punkt „SSL erzwingen“.

    Wenn ich diesen aktiviere, kann ich mir dann den Eintrag in der .htaccsses sparen?

    Vielen lieben Dank für dein Antwort

    Nils

      1. Hi Daniel,

        vielen Dank für deine schnelle Antwort. Das gefällt mir sehr gut, wie du mit deinen Lesern umgehst.

        Liebe Grüße aus Berlin

        Nils

  24. Hallo Daniel,

    danke für den präzisen und guten Artikel. Hat wunderbar funktioniert. Manche Hosting Anbieter wie z.B. Strato bieten auch konfigurativ an, dass SSL erzwungen wird, was eine manuelle Änderung der .htaccess obsolet macht.

    Viele Grüße
    Oliver

  25. Hallo Daniel,
    1000 Dank für die Erhellung und Deine Tutorials. Eine Frage, die vielleicht dämlich ist: Kann ich auch die Subdomains bei all inkl auf https umstellen oder sind die automatisch auf https, wenn ich die Domain umgestellt habe? Merci und Gruß
    Alex

  26. Hallo Daniel,
    Vielen Dank für deine gute Erklärung! Habe alles geschafft, bis auf das:
    „..muss noch in seinen Anpassungen (Widgets, PHP Dateien, usw.) suchen, ob dort noch URLs enthalten sind, die nicht mit https anfangen und diese umstellen.“

    Könntest du mir da eine genauere Beschreibung geben, wie ich die wo finde. Das wäre super nett :)
    LG, Klaus

Schreibe einen Kommentar

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