Gastbeitrag: WordPress-Administration per SSL absichern
Es gibt viele Möglichkeiten, um die WordPress-Administration sicherer gegen Angreifer zu machen. Das fängt bei solch trivialen Dingen wie dem Benutzen von sicheren Passwörtern an und geht hin bis zum Absichern der WordPress-Administration mit einer zusätzlichen Authentifizierung am Webserver.
In dieser Anleitung gehen wir aber noch einen Schritt tiefer und verschlüsseln die WordPress-Administration per SSL. Hierbei wird sämtlicher Datenverkehr der WordPress-Administration über einen sicheren, verschlüsselten Kanal geleitet.
Für diese Anleitung wird ein Webserver mit SSL-Unterstützung benötigt. Wer nicht genau weiß, ob sein Webserver von Haus aus SSL unterstützt, hängt einfach ein https:// anstatt eines http:// vor seine Internetadresse. Wenn keine Verbindung hergestellt werden kann, ist SSL noch nicht verfügbar. Eventuell kann man SSL beim Webhoster gegen einen geringen Aufpreis dazubuchen. Wer einen vServer oder root-Server sein Eigen nennt, sollte sich diese Anleitung zur Einrichtung eines Apache-Webservers mit SSL mal anschauen.
Außerdem muss das Umleiten von URLs per .htaccess-Datei erlaubt sein, was aber bei den meisten Anbietern der Fall ist.
Zunächst öffnest du die Datei wp-config.php im WordPress-Hauptverzeichnis und fügst an das Ende der Datei die Zeile
define('FORCE_SSL_ADMIN', true);
ein. Diese Option veranlasst WordPress, den Login-Prozess nur über eine gesicherte Leitung abzuwickeln.
Das macht das ganze schon ein Stückchen sicherer, allerdings wird noch der Rest der Administration unverschlüsselt übertragen. Deshalb machen wir uns nun an die Anpassung des Webservers. Öffne nun die Datei .htaccess in dem WordPress-Hauptverzeichnis und füge folgende Zeile ein:
RewriteCond %{SERVER_PORT} ^80$ RewriteRule ^http://(.*?)/wp-admin/(.*) https://$1/wp-admin/$2 [R,L]
Dieser Eintrag muss direkt nach dem Eintrag:
RewriteBase /
platziert werden, wobei der RewriteBase-Eintrag je nach Konfiguration eventuell abweichen kann.
Jetzt solltest du direkt beim Aufrufen der WordPress-Administration auf https umgeleitet werden. Somit ist nun deine ganze Arbeit in der WordPress Administration verschlüsselt.
Der Experte wird unter gewissen Umständen vielleicht bemerken, dass nicht alle Daten verschlüsselt übertragen werden (Firefox zeigt keinen blauen oder grünen Balken hinter dem favicon an). Manche Plugins fordern Daten außerhalb des Ordners wp-admin an. In diesem Fall werden diese Daten nicht verschlüsselt übertragen. Bei mir zum Beispiel hat das Plugin Ajax Edit Comments noch Daten aus anderen Verzeichnissen nachgeladen.
Unter Firefox kann man schnell nachschauen, welche Daten unverschlüsselt geladen werden. Klicke dazu mit der rechten Maustaste irgendwo in die Administration (nur nicht auf einen Link :P) und wähle Seiteninformationen anzeigen.
Unter dem Reiter Medien kannst du dir dann anschauen, woher sämtliche Daten geladen wurden. Diejenigen, bei denen kein https angegeben wird, wurden über einen unverschlüsselte Verbindung übertragen, was aber in der Regel nicht weiter schlimm ist:
Ab sofort ist dein WordPress noch etwas sicherer gegen Angreifer. Diese können aufgrund der Verschlüsselung keine sensiblen Daten mehr abfangen.
Über den Autor dieses Artikels
Mein Name ist Patrick Gotthard und in meinem Blog beschäftige ich mich vor allem mit HTPCs (auch MediaPCs oder Wohnzimmer-PCs genannt) und diversen Software-Themen (Programmierung in PHP und Java, Webdesign, WordPress, Linux- und Windows-Betriebssysteme, Softwarevorstellungen). Außerdem berichte ich über interessante Fundstücke aus dem Netz. Ich würde mich freuen, wenn ihr mir auch mal einen Besuch abstattet.
@Sergej: „[…]die zweit genutzte Funktion[…]“ welches ist denn die meistgenutzte Funktion? 😛
Ja oben muss die RewriteRule auch nochmal angepasst werden, da hab ich leider etwas geschlampt. Und den Hinweis kann ebenso auch nur caschy einpflegen :-/
@Patrick
Ich hoffe, Beiträge verfassen ist die meist genutzte.
Achso, ich hatte nun irgendein anderes Feature erwartet. Macht natürlich Sinn, dass die Leute auch Content auf ihr Blog bringen 😀
Welchen sehr preisgünstigen Hoster empfiehlt ihr, wenn man SSL nutzen will? (Ich war vorher bei strato und war SSL-mäßig enttäuscht gewesen). Mir geht es nur um 1-2 wordpress-Skripte und sagen wir mal ca. 500mb Webspace. Traffic soll jetzt mal kein Kriterium sein, da alles im Rahmen liegt.
Danke schonmal. 🙂
Ich musste leider eben feststellen, dass meine in den Kommentaren geschriebene Regel nicht greift, wenn WordPress in einem Unterverzeichnis liegt, deshalb hier nun die hoffentlich für alle WordPress-Installationen passende RewriteRule:
RewriteCond %{HTTPS} !=on
RewriteRule wp-admin https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
Das Problem mit dem Flash-Uploader besteht leider nach wie vor. Als Workaround muss man derzeit noch auf den HTTP-Uploader umsteigen.
WordPress 3.0 soll übrigens voraussichtlich Mitte Juni erscheinen, der erste Release Candidate sollte kommende Woche erscheinen, so die neueste Meldung im WordPress Deutschland-Blog.
http://blog.wordpress-deutschland.org/2010/05/22/wordpress-3-0-vorraussichtlich-mitte-juni.html/comment-page-1#comment-122309
Ich kann es kaum erwarten.
Heute ist der erste Release Candidate von WordPress 3.0 erschienen, das ist eine gute Nachricht. 🙂
@paradonym: Ich hab mir eben nochmal alle Kommentare durchgelesen. Also wenn du keinen Zugriff per FTP hast, musst du irgendwie anders deine .htaccess editieren – falls das bei wordpress.com überhaupt irgendwie möglich ist. Ich meine, dass ich irgendwann mal einem WordPress-Plugin über den Weg gelaufen bin, mit dem man die .htaccess-Datei aus der Administration heraus anpassen konnte.
@Patrick & Paradonym
Mit dem WordPress-Plugin FileBrowser von Daniel Hüsken sollte man die .htaccess über den Browser bearbeiten können.
Ob Worpress.com das unterstützt ist die andere Frage 🙂
Ich bin jetzt ein Tarif höher bei meinem Webhoster, aber https spuckt weiterhin eine Fehlermeldung aus. Ich glaube kaum, dass es in einem Tarif eines Webhosters standardmäßig drin ist. Schade, dass es nicht geht.
Auch wenn der Artikel schon etwas älter ist…
Wofür soll man denn die Rewrite in die htaccess schreiben? Über FORCE_SSL_ADMIN wird man doch automatisch per https in den Admin-Bereich gelotst. Oder habe ich da was übersehen?
Und wegen dem Flash-Uploader, die aktuelle Version 1.07 von diesen NO SSL Flash Uploader PlugIn funktioniert bei mir:
http://wordpress.org/extend/plugins/aarons-no-ssl-flash-upload/
Und gibt es einen Trick, die Dateien wirklich über https abzurufen? Denn im Backend von WordPress bekomme ich immer das Symbol dafür, dass die Verbindung ja nur teilweise verschlüsselt ist (ist zwar halb so wild aber dennoch ärgerlich).
Ich bedanke mich für den Beitrag!
Hi, habe vor einigen Tagen einen Blog-Post zum Thema „WordPress Sicherheit“ geschrieben, ggf. hilft es ja jemandem weiter 🙂
-> http://suckup.de/blog/2010/10/09/wordpress-sicherheit-erhoehen/
Mfg Voku