WordPress HTTPS mit SSL-Zertifikat einrichten
Immer, wenn sensible Daten über das Internet übertragen werden, sollte die Übertragung verschlüsselt sein. Das betrifft den Login-Bereich eurer WordPress-Seite ebenso wie Formulare und Bestellungen in Shops. Wie ihr eure WordPress-Seite mit einem kostenlosen SSL-Zertifikat in 20 Minuten von http auf https umstellt, lest ihr hier.
Das richtige SSL-Zertifikat
Neben der generellen Unterscheidung in Zertifikate für eine Domain und sogenannte Wildcard-Zertifikate, die zudem für alle Subdomains gelten, werden die SSL-Zertifikate in diese drei Arten unterteilt:
- Domain Validation
- Organization Validation
- Extended Validation (nur hiermit ist in allen Browsern die Adress-Leiste grün)
Domain Validation
Für die meisten Webseiten sind diese Zertifikate ausreichend, da die Verschlüsselung ebenso sicher ist wie mit teureren Zertifikaten. Der Unterschied betrifft lediglich die Prüfung der Identität des Seitenbetreibers, die sich bei diesem Zertifikat auf den Abgleich mit den Daten der Domainregistrierung beschränkt. Diese Zertifikate sind innerhalb weniger Minuten ausgestellt, und es gibt bereits kostenfreie Quellen wie zum Beispiel startssl.com.
Organization Validation
Bei der Organization Validation wird neben dem Domaininhaber auch geprüft, ob die Organisation berechtigt ist, die Domain zu führen. Die Validierung ist dementsprechend zeitaufwendiger, und es wird in der Regel ein Handelsregisterauszug gefordert. Das Zertifikat eignet sich für Firmen, die keinen Online-Shop betreiben.
Extended Validation
Nur Zertifikate mit der Extended Validation führen zu den grünen Adress-Leisten in den Browsern eurer User. Der erhebliche Mehraufwand bei der Überprüfung eurer Daten rechtfertigt dann auch die fürstlichen Preise für diese Zertifikate, die bei anerkannten Zertifizierungsstellen wie Thawte und GeoTrust jährlich um die 180 Euro kosten, bei Symantec sogar über 600 Euro. Aufgrund der Kosten eigenen sich diese Zertifikate in erster Linie für Online-Shops, die Ihren Kunden sichtbare Sicherheit bieten wollen.
Egal für welche Validierungsart ihr euch entscheidet – achtet auf eine 256-bit Verschlüsselung (meist in Verbindung mit 2048-bit RSA).
WordPress Seite auf HTTPS umstellen
Da bei der Umstellung auch Änderungen an eurer Datenbank notwendig sind, solltet ihr vorher ein Backup eurer Seite und Datenbank erstellen. Unabhängig von der Zertifikatsart, für die Ihr euch entscheidet, ist der Vorgang für die Umstellung eurer Seite immer derselbe.
1. Zertifikat hinterlegen
Bei eurem Hoster hinterlegt ihr in der Domainverwaltung das von der Zertifizierungsstelle herausgegebene Zertifikat. Da die einzelnen Klicks vom jeweiligen Hoster abhängen, folgt ihr am besten der Anleitung eures Hosters oder lasst euch dabei vom Support helfen. Als Beispiel findet ihr hier die Anleitung von All-Inkl. Sobald das Aufrufen eurer Seite über https möglich ist, geht es mit dem zweiten Schritt weiter.
2. Die URL in WordPress ändern
Wie gewohnt meldet ihr euch am Backend eurer WordPress-Seite an und navigiert im Dashboard zum Punkt Einstellungen > Allgemein. Dort ändert ihr jetzt die URLs in den Feldern WordPress-Adresse (URL) und Website-Adresse (URL) von http://deine-url.de in https://deine-url.de. Nach dem Speichern müsst ihr euch erneut im Backend anmelden.
3. Die URL in der Datenbank ändern
Da die Medien in euren bisherigen Beiträgen noch per http eingebunden sind, müsst ihr jetzt die alten http-Links in https-Links ändern. Das könnt ihr zum einen über euer Datenbankverwaltungs-Tool erledigen, oder auf ein WordPress-Plugin zurückgreifen. Wir nutzen dazu das Plugin Better Search Replace, das diese Aufgabe zuverlässig und schnell erledigt.
Dazu schreibt ihr in das erste Textfeld eure bisherige URL (bei unserer Seite ist das https://pressengers.de) und in das zweite Textfeld die URL mit https (also https://pressengers.de). Per Klick wählt ihr die Tabellenblätter aus, in denen die Werte geändert werden sollen (Alle). Vor dem Ersetzen prüft ihr die neue URL nochmals auf Tippfehler.
4. Eine 301-Weiterleitung in der .htaccess einrichten
Mit dem vorherigen Schritt ist eure Seite durchgängig per https zu erreichen. Damit auch externe Links (die noch auf die http-Version verlinken) auf den entsprechenden Seiten ankommen, richtet ihr eine permanente Weiterleitung – einen sogenannten „301-redirect“ – von http auf https ein. Dazu ergänzt ihr diesen Code in eurer .htaccess-Datei nach dem Eintrag # END WordPress:
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Grundsätzlich ist damit die Umstellung eurer Seite auf https abgeschlossen. Die nächsten drei Punkte sind Fleißarbeit.
Fleißarbeit
Für die Umstellung auf https nicht notwendig, aber empfehlenswert:
Caching
Ihr verwendet ein Caching-Plugin für eure Seite? Dann ist jetzt der richtige Zeitpunkt, den Cache zu leeren und neu zu erstellen, damit keine http-Seiten ausgeliefert werden.
Performance
Dieses Feature wird leider nicht von allen Shared-Hosting-Anbietern unterstützt, aber mit der Funktion „connection: keep-alive“ holt ihr gerade bei SSL-verschlüsselten Seiten einiges an Ladezeitoptimierung raus. Denn ohne die Funktion baut ein Browser für jedes Element einer Webseite eine eigene Verbindung zum Server auf, bei der sie sich jeweils über die Verschlüsselung einigen müssen, die sogenannte „SSL-Negotiation“.
Mit dem keep-alive braucht der Browser nur eine verschlüsselte Verbindung mit eurem Server aufbauen, über die dann alle Elemente heruntergeladen werden. Mit Tools wie gtmetrix.com prüft ihr, ob das keep-alive durch euren Hoster schon standardmäßig aktiviert ist. Falls nein, könnt ihr versuchen, mit folgendem Code in eurer .htaccess-Datei die Funktion zu aktivieren:
<ifModule mod_headers.c> Header set Connection keep-alive </ifModule>
Im Zweifelsfall haltet ihr Rücksprache mit eurem Hoster, ob die Funktion in eurem Hosting-Paket angeboten wird und wo ihr die Einstellung aktivieren könnt.
Webmaster Tools/Search Console
Nutzt ihr die Search Console (ehemals Webmaster Tools) von Google? Google unterscheidet zwischen den http und https Domains. Um auch weiterhin die Impressionen, Klicks und Benachrichtigungen für eure Seite zu erhalten, müsst ihr eure Seite mit der https-URL anlegen.
Hi Hans, cool dass du das Thema weiter in die Welt trägst :-)!
Einige Tipps noch, für den Selbstversuch und das Leben mit HTTPS:
– Beim Erstellen der Zertifikatanfragen (CSR – Certificate Signing Request) darauf achten, dass diese mit SHA256 gehast werden und nicht mehr mit SHA1. Auf der Kommandozeile funktioniert das mit „openssl … -sha256 …“. Bei anderen Tools solltet ihr selbst drauf achten.
– Zertifikate im Idealfall mit einer Laufzeit von 1 Jahr erstellen. Heißt zwar auch jedes Jahr das Zertifikat auszutauschen, bringt dafür aber mehr Sicherheit, da ihr einmal im Jahr die alten Zertifikate aus dem Verkehr zieht und euch die Vorteile der Gegenwart ins Boot holt (SHA1 vs SHA256 z.B. aktuell gegen den LOGJAM Angriff)
– Nach dem Einrichten kann und sollte man die Konfiguration noch einmal hierüber testen lassen (kostenlos und ungefährlich!): https://www.ssllabs.com/ssltest/
Das Tool zeigt einem sehr einfach und übersichtlich an, was noch alles am Server konfiguriert werden muss. Auf jeden Fall den Haken unter dem Eingabefeld setzen!
– Eines der häufigsten Probleme beim Einrichten von Zertifikaten sind die „Bundles“. In der Regel bekommt man nicht nur ein Zertifikat, sondern auch diverse Zwischenzertifikate (intermidiate bundle). Diese müssen in der richtigen Reihenfolge(!) mit eingebunden werden. Beim SSL Test muss bei allen Zertifikaten „sent by server“ stehen. Ansonsten kann es sein, dass, je nach Browser, eure Seite doch nicht als „https gesichert“ akzeptiert wird und eine häßgliche Warnung erscheint, da die Zwischenzertifikate fehlen.
– Nur weil ein SSL Zertifikat hinterlegt wurde, heißt das nicht, dass die Seite damit sicher ist. Ein schlecht konfigurierter Server macht auch das beste Zertifikat sinnlos. Vergleich: Was bringt die beste Panzertür, wenn man sie in eine Papier-Wand einbaut? Hier hilft auch wieder SSLLabs. Ist man nun auf einem Shared Hoster unterwegs -> verloren. Ansonsten: Hand anlegen und die Server Configs anpassen (lassen)!
– Aus eigener Erfahrung noch ein Tipp: Um komische wp-admin Redirects auf http zu vermeiden solltet ihr in der wp-config.php noch folgendes hinzufügen, sobald ihr HTTPS erfolgreich eingerichtet habt: define(‚FORCE_SSL_ADMIN‘, true);
Zu guter letzt: So wie Hans das beschrieben hat, funktioniert das auch in einer Multisite. Die Einstellungen verstecken sich dann aber im „Nertzwerk Admin“ unter „Seiten“ und den Einstellungen der jeweiligen Seite. Für den Betrieb von mehreren Domains in einem Zertifikat gibt es ebenfalls inzwischen spezielle Zertifikate.
Und wenn ihr keine Lust habt, das alles selbst zu machen, dann kommt bei https://wirliebenwp.de/managed-wordpress-hosting/ vorbei und freut euch drauf, dass wir uns dort in Kürze um all diese Themen kostenlos mit kümmern!
Freue mich auf viele neue HTTPS WordPress Blogs!
Jan
Hallo Jan,
vielen Dank für deine Ergänzungen und insbesondere deinen Tool-Tipp für den ssltest!
Hallo Jan,
… bei dem „define(‚FORCE_SSL_ADMIN‘, true);“ kommen nicht wirklich die Anfuehrungsstriche vor/hinter FORCE_SSL_ADMIN – oder?!?
Korrekt waere doch: define(FORCE_SSL_ADMIN, true);
Danke & VG, Mike
Hallo Hans!
Spannender Artikel. Trifft sich zeitlich super, da ich gerade einen Kunden habe, der sein WP auf SSL umstellen möchte, um den kleinen Google-Bonus im Ranking zu nutzen. Eine Frage ist jedoch noch offen: Welches Zertifikat sollte/muss ich nehmen, wenn ich die Seite für Google SSL-verschlüsseln möchte, damit das Ranking positiv beeinflusst wird. Ist dies schon bei der günstigen Variante der Fall oder sollte man – weil es vermutlich keine klaren Aussagen von Google gibt – direkt die extended validation verwenden?
Viele Grüße!
Jens
Hallo Jens,
mit ist keine Aussage bekannt, dass es als Ranking-Faktor auf die Validierungsart des Zertifikats ankommt. Wenn dein Kunde über die Webseite Vertrauen aufbauen möchte, ist ein Zertifikat mit EV wegen der grünen Adressleiste sicherlich hilfreicher. Aktuell gibt es bei Comodo eine Aktion: SSL-Zertifikat mit EV für 99 Euro netto, da kann man fast nichts falsch machen.
Hallo Hans!
Dank dir für deine Einschätzung. Ich werde dann mal das „grüne-Adressleisten-Zertifikat“ shoppen. Sieht natürlich auch am hübschesten aus! 😉
Viele Grüße!
Jens
Hi Jens,
Aus meinen Erfahrungen heraus ist es vollkommen egal, solange die Seite ordentlich per https abgesichert ist. Und da ist jedes Zertifikat mit 2048 bit und SHA256 gleich gut. Egal ob kostenlos, 9€, oder 199€.
Alles weitere inhaltliche hat Hans ja bereits kommentiert :-). Und die 99€ für ein EV sind ein hervorragender Kurs!
Grüße, Jan
Hallo liebe Leute
Ich habe versucht nach Ihren Anleitungen das SSl einzurichten, leider ist folgende Fronten ist alles normal geblieben. Aber wenn ich mich ins Backend anmelden möchte muss ich immer ein neues Passwort beantragen wenn ich dieses getan habe bin ich wieder im Backend und habe die ssl abgesicherte Seite günes Schloss was kann ich tun kann mir eine Helfen
lg.
Pitter
Ein DICKES Dankeschön!
Habe alle Sites erfolgreich auf https umgestellt. Mit StartSSL und Deiner Anleitung ein Kinderspiel.
Gruß!
Wirklich guter Artikel und Zeigt auch Ihre Kompetenz. Weiter so.
[…] so genannte 301-Weiterleitung eingebaut werden, wie ich übereinstimmend lesen konnte / musste / durfte. Diese Anpassung geschieht in der Datei .htaccess, und ich zeige Ihnen das weiter unten. Die Datei […]
[…] habe ich als Grundlage genutzt: WordPress auf https umstellen (SSL-Verschlüsselung) (Webongo) WordPress HTTPS mit SSL-Zertifikat einrichten (Pressengers, Hans Jung) WordPress auf 100% HTTPS-only umstellen, HTTP vollständig […]
Vielen Dank für diese sehr gute Anleitung! Auf meiner Seite funktionierte alles bestens, nur bei einer Kundenwebsite, die bei Strato gehostet ist, gab es Probleme durch die Angabe in der .htaccess.
Erst diese Variante funktionierte:
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]
(Quelle: https://pabstwp.de/wordpress-website-komplett-per-https-verschluesselt-anzeigen/)
[…] Umleitung per htaccess auf https. Bei pressengers findet man eine ausführliche Anleitung >klick<. Wer unsicher ist wegen der Anpassungen in der Datenbank, nimmt am Besten ein Plugin wie: […]
Eine Frage habe ich dazu. Wenn ich meine Seite auf htttps umstelle, sind dann automatisch Daten, die ich über Formulare von Kunden abfrage sicher?
Kostenlose SSL Zertifikate gibts es neuerdings von https://letsencrypt.org. Mein Provider bietet diese automatisch an.
Ja, meiner auch! Ich war so begeistert von der 1-Klick-Verschlüsselung, dass ich gleich eine Lobeshymne darauf geschrieben habe: http://www.sir-apfelot.de/wordpress-ssl-umstellen-test-1-klick-loesung-4407/
🙂
Hallo, ein sehr interessanter Artikel, ich habe meinen Shop gemäß Anleitung umgestellt und es funzt problemlos! Eine Frage noch: sollte man nach der Umstellung auch die Sitemap bei den Google Webmastertools neu einreichen?
Vielen Dank und viele Grüße
Hallo Marcel,
freut mich, dass die Anleitung dir geholfen hat!
Ja, du musst in der Google Search Console die HTTPS-Version deines Shops separat anlegen und entsprechend auch eine neue Sitemap einreichen.
Viele Grüße,
Katharina
Interessanter Artikel und gute Anleitung. Bleibt bei mir eine Frage übrig, denn das man in der Webmaster Konsole die Url neu anlegen muss ist klar, aber wie schaut das eigentlich bei Google News aus? Muss man sich da dann auch erneut anmelden?
Hallo,
… toller Artikel + Beteiligung! Echt Klasse!
Passt bei mir zeitlich genau ins Schema 😉
Aber bitte Leute – es heißt NICHT „Die URL …“ SONDERN „Der URL …“ (Uniform Resource Locator)!
Oder ist das Euch mittlerweile egal?
Naja – die Welt davon nicht unter gehen – ODER ?!? 😉
VG, Mike
Hallo,
ich wage mich auch an das Thema HTTPS. Nun bin ich am recherchieren, wie die .htaccess genau bzgl. der 301 aussehen muss, denn mit der hatte ich bisher nichts zu tun. Um nichts zu schrotten dachte ich, google doch mal…
Ich bin nun echt irritiert, denn hier auf dieser Seite wird geschrieben, nach dem Eintrag # END WordPress soll die Ergänzung sein.
[..] Dazu ergänzt ihr diesen Code in eurer .htaccess-Datei nach dem Eintrag # END WordPress:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
———————————————-
auf anderen Webseiten steht die Änderung aber nicht nach dem ‚End WordPress, sondern dazwischen:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://DEINEDOMAIN.DE/$1 [R=301,L]
# ALTERNATIV: RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R=301,L]
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Bitte helft mir, welche Variante stimmt, bzw. macht es einen Unterschied?
Vielen Dank, Michi
[…] Umleitung per htaccess auf https. Bei pressengers findet man eine ausführliche Anleitung >klick<. Wer unsicher ist wegen der Anpassungen in der Datenbank, nimmt am Besten ein Plugin wie: […]
Ich habe bei der Sicherheitsfirma Janotta und Partner diesen Hinweis gefunden.
Demnach soll ab dem 01. Januar 2017 der Google Chrome Browser alle Onlineshops und Webseiten mit einer Warnung anzeigen, wenn diese kein HTTPS besitzen.
https://janotta-partner.de/ssl-installieren.html
Falls das stimmt brauche ich eventuell Hilfe bei der Umstellung. Macht Ihr das auch und was kostet mich das?
[…] weitere gute und hilfreiche Quellen bzw. Hilfestellungen zum Thema. Der Artikel von Hans Jung »WordPress HTTPS mit SSL-Zertifikat einrichten« vom 15.06.2015, auf den auch Elisabeth Hölzl in ihrem oben verlinkten Artikel verweist, sei an […]
Schritt 1, also das Ändern der URL im WordPress-Backend selbst, erübrigt sich. Das hier vorgestellte (und von mir selbst mit Erfolg eingesetzte Plugin «Better Search Replace» erledigt dies von alleine.
Eine Präzisierung noch zu ebendiesem Plugin: Mann muss ALLE Tabellen auswählen, bei denen von http auf https zu wechseln ist.
Ansonsten: Perfekte Anleitung. Die Umstellung dauert nur wenige Minuten.
Vielen Dank für die tolle Anleitung, die Umstellung hat bei zwei Seiten, die ich technisch betreue, wunderbar geklappt. Meine eigene Seite ist dann demnächst auch dran 🙂
Hallo,
ich habe ein großes Problem. Habe die Anleitung durchgearbeitet und leider hat das ganze nicht so funktioniert wie ich mir das erhofft habe. Ich habe dann folgenden Code in die htaccess datei geschrieben (wurde auf einer anderen Seite als Lösung vorgeschlagen):
Code:
RewriteCond %{HTTP_HOST} !^www\..* [NC]
RewriteCond %{HTTP_HOST} !^.*\..*\..* [NC]
RewriteCond %{HTTP_HOST} !^localhost(.*)$ [NC]
RewriteRule ^(.*) http://www.%{HTTP_HOST}/$1 [R=301,L]
nachdem ich dies per copy paste eingefügt hatte, wurde mir jeglicher Zugriff auf meine Website verweigert. Ich komme absolut nirgends mehr ran. Meine Website liegt bei Strato und habe schon versucht über phpmyadmin alle Plugins zu deaktivieren das hat aber nichts genützt. Es kommt immer der Fehler :Diese Seite funktioniert nicht mavoon.de hat Sie zu oft weitergeleitet.
Ich bin für jeden Tipp dankbar.
Grüße Peter
Bitte Hilfe
Bei Befolgen von Schritt 4 ist ein großes Problem aufgetreten.
Wie beschrieben ergänzte ich diesen Code in meiner .htaccess-Datei nach dem Eintrag # END WordPress:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
nachdem ich dies per copy paste eingefügt hatte, wurde mir jeglicher Zugriff auf meine Website als auch das WordPress Menü verweigert. Ich komme absolut nirgends mehr ran.
Immer folgender Fehlercode: ERR_TOO_MANY_REDIRECTS
Auch das Löschen der Cookies hat nichts geholfen.
Was kann ich tun? bitte Hilfe
LG Philip