für die Liste aller Seiten
Administratoren
Die Internetgemeinde bewegt sich rasch in Richtung sicherer Webseiten, indem sie Hypertext Transfer Protocol Secure (HTTPS) nutzt.
Bedenken Sie, dass HTTPS und mobile friendly als Rankingkriterien von Suchmaschinen benutzt werden.
Diese Seite ist ein Platzhalter und dient dazu, Informationen von der E-Mail-Liste und von Rezepten im Hauptteil von PmWiki zusammenzutragen.
Behandlung von HTTPS-Anfragen durch PmWiki
PmWiki antwortet jetzt schon angemessen auf https:
-Anfragen – es erkennt, wenn eine Anfrage über HTTPS hereinkommt und wandelt seine herausgehenden Verweise entsprechend um. Das bedarf keiner neuen Variablen.
Wenn Sie alle PmWiki-Verweise zwingen wollen, HTTPS zu benutzen, passen Sie $ScriptUrl
und $PubDirUrl
entsprechend an.
Die docs/sample-config.php
-Datei enthält:
# $ScriptUrl = 'http://www.mydomain.com/path/to/pmwiki.php';
# $PubDirUrl = 'http://www.mydomain.com/path/to/pub';
Sie möchten Sie vielleicht ändern in:
$ScriptUrl = 'https://'.$_SERVER['HTTP_HOST'].'/pmwiki/pmwiki.php';
$PubDirUrl = 'https://'.$_SERVER['HTTP_HOST'].'/pmwiki/pub';
Es besteht eine gute Chance, dass eine Site $ScriptUrl
ohnehin schon in der local/config.php-Datei gesetzt hat – das ist schließlich eines der ersten Dinge, die in docs/sample-config.php erwähnt werden, auch in der Dokumentation der ersten Einstellungen.
Es wäre gut, die Einstellungen in der docs/config.sample.php-Datei zu ergänzen, sodass sie etwa das Folgende einschließt:
# If you prefer HTTPS over HTTP linkages:
# $UrlScheme = 'https';
# $ScriptUrl = 'https://www.mydomain.com/path/to/pmwiki.php';
# $PubDirUrl = 'https://www.mydomain.com/path/to/pub';
PmWiki leitet HTTP automatisch auf HTTPS um
PmWiki dazu zu bringen, automatisch HTTP-Anfragen auf HTTPS umzuleiten, … das klingt nach einem Rezept. Und es wäre sowieso viel effizienter, das auf dem Webserver-Niveau zu behandeln (z. B. über .htaccess, Redirect, etc.).
Fügen Sie am Beginn der config.php-Datei für Versionen nach 2.2.0-beta18 ein:
if ($UrlScheme == 'http') {
header( "Location: " . "https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
exit('<html><body>
<a href="https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . '">Please use HTTPS</a>
</body></html>');
}
$ScriptUrl = "https://".$_SERVER['HTTP_HOST']."/pmwiki/pmwiki.php";
$PubDirUrl = 'https://'.$_SERVER['HTTP_HOST'].'/pmwiki/pub';
Zertifikate
Sie brauchen ein Zertifikat von einer Certificate Authority (CA), ein selbst-signiertes Zertifikat ist nicht mehr länger angemessen[1].
- Let’s Encrypt ist eine freie, automatisierte und offene Certificate Authority.
- EFFs CertBot erteilt Let's-Encrypt-Zertifikate, um Ihr PmWiki automatisch HTTPS-fähig zu machen.
- Certify the Web bietet einen Windows-nativen-Klienten zum Abrufen und Installieren eines Let's-Encrypt-Zertifikats.
.htaccess für HTTPS benutzen
Fügen Sie in einer .htaccess
-Datei im public_html
-Verzeichnis das Folgende an oder erzeugen Sie ggf. eine solche Datei mit dem Inhalt.
Fügen Sie folgende Zeilen hinzu:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Stellen Sie sicher, dass die Zeile RewriteEngine On
nicht doppelt auftaucht [2].
HTTPS beim IIS aufsetzen
Die folgenden Schritte helfen, PmWiki mit HTTPS auf IIS zum Laufen zu bekommen.
- Folgen Sie den obigen Schritten, um HTTPS in PmWiki zu aktivieren und besorgen Sie sich ein SSL-Zertifikat.
- In IIS wählen Sie den Server und 'Server Certificates'.
- Wenn Ihr Zertifikat hier noch nicht zu sehen ist (z. B. von LetsEncrypt), importieren Sie es.
- Aktivieren Sie Automatic Rebind für das erneuerte Zertifikat.
- Wählen Sie in IIS die zu sichernde Website.
- Wählen Sie die 'Binding action', fügen eine Bindung vom Typ
https
für Ihren Hostnamen hinzu, wählen Sie dann das zu benutzende SSL-Zertifikat.
Sie können Ihre http-Zugriffe auch auf https umleiten.
Prüfen Sie auch
- Ihr Router ist so eingestellt, dass er Datenaustausch über Port 443 (HTTPS) erlaubt.
- Ihre Firewall ist so eingestellt, dass sie Datenaustausch über Port 443 (HTTPS) erlaubt.
- IIS SSL Einstellungen sind eingestellt auf Client certificates: ignore
Ein einfacherer Weg
Sie könnten statt dessen auch einfach das Folgende machen:
$ScriptUrl = '//your-host-name.com/pmwiki/pmwiki.php';
$PubDirUrl = '//your-host-name.com/pmwiki/pub';
Sie müssten nur alle 'http:' oder 'https:' entfernen, allerdings bricht das die Kompatibilität mit älteren Browsern und einigen PmWiki-Rezepten wie googledocviewer, seien Sie vorsichtig.
Referenzen
für die Liste aller Seiten