BITFOX® | LÖSUNGEN | SERVICE | LOGIN | BLOG | KONTAKT

Samstag, 24. August 2019

Wordpress: Teile dieser Seite sind nicht sicher.

Es fing mal wieder ganz einfach an...
"Kannst du mal eben....?"

Ein Freund von mir hat einen Wordpress-Webauftritt bei meinem Lieblings-Host aus Europa und wollte gern ein kostenloses SSL-Zertifikat von Lets Encrypt einbinden:
Was was bei anderen Volkshostern wie z.B. 1&1 kostenlos per Mausklick im Kundenmenü und ohne große technische Kenntnisse machbar ist, artet dort oft für den normalen Menschen in ein handfestes Problem aus, wenn er nicht ein teures Bezahl-Zertifkat erwerben will...

"Klar, mach ich dir nebenbei mal. Gib mir die Logindaten."....

15 Minuten später war das Zertifikat über das besonders kundenfreudliche Bedienpanel "KIS" hereingebaut - und die Probleme gingen los....
"Teile dieser Seite sind nicht sicher. Dies können z.B. Grafiken sein."
....ojeh....

Das Problem ist ansich schnell erklärt: Die nun mit SSL gesicherte Webseite unter "https://" lädt "unsicher" Bilder über "http://"  nach - und das findet ein Browser wie z.B. Firefox nicht schön.

Was muss nun gemacht werden?

Da die im Webauftritt verwendeten Wordpress-Plugins teilweise uralt sind und ein Update nicht "mal eben" möglich ist, muss also sicher gestellt werden, dass nun alle Requests unter "https" abgesetzt werden - egal ob diese aus .css, .js, .less, .irgendwas-Dateien oder gar aus der Datenbank kommen.
Einfach in allen Dateien ein "http" gegen ein "https" zu tauschen ist also nicht unbedingt eine gute Idee; da muss was mit dem Holzhammer her.

Für den Aufruf der Webseite müssen wir zudem immer mit https und einem eindeutigigen Namen arbeiten, denn es ist nicht schön anzusehen, man die Webseiten http://antiterror-blockaden.de und http://www.antiterror-blockaden.de und https://antiterror-blockaden.de und https://www.antiterror-blockaden.de  durcheinander benutzen kann;
Obendrein gibt es dadurch in den Suchmaschinen Probleme mit doppelten Content, was die Bewertung im Index bei Google herunter zieht.

Und jetzt wird wieder in die Hände gespuckt...

In der Datei wp-settings.php habe ich am Anfang folgendes eingesetzt:

<?php
#
# 2019-08-24 Oliver Lenz
#
define('WP_HOME','https://www.antiterror-blockaden.de/');
define('WP_SITEURL','https://www.antiterror-blockaden.de/');


Damit leitet Wordpress die Seite immer mit dem Prefix "www." auf das Protokoll "https://":
Wir landen wir nun immer auf https://www.antiterror-blockaden.de/


Die sonst durchaus übliche und gute Möglichkeit über die Datei .htaccess bzw. über das Apache-Modul mod_rewrite zu arbeiten, um die URL der Website eindeutig zu machen, kann zusätzlich erfolgen, kann aber auch vernachlässigt werden.
Aber wir sind da ordentlich!

# BEGIN Oliver
# 2019-08-24 Oliver Lenz Rewrite auf www.domain.tld
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.antiterror-blockaden\.de$ [NC]
RewriteRule ^(.*)$ https://www.antiterror-blockaden.de/$1 [L,R=301]
</IfModule>
# END Oliver


Und nun noch der Holzhammer für lästige kaputte css-Dateien, Bildverweise wie <img src="http://...."> und andere: Wir schreiben den Seiteninhalt bei der Ausgabe einfach um:
Am Ende der wp-settings.php manipulieren wir vor dem "do_action('wp_loaded');" also die Pufferinhalte von http nach https!

#
# 2019-08-24 Oliver Lenz: Rewrite Content -> http: to https:
#
add_action('wp_loaded', 'buffer_start');
function buffer_start() { ob_start("action_httpsrewrite"); }
add_action('shutdown', 'buffer_end');
function buffer_end() { ob_end_flush(); }
function action_httpsrewrite ($buffer) {
  $buffer = str_replace('http:','https:',$buffer);
  return $buffer;
}

do_action('wp_loaded');



SO ! Nun aber ! Aus die Maus -
und jetzt her mit dem Hühnchen!
















Mit besten Grüßen vom Fuchs! :-)

Keine Kommentare:

Aktuelles