https von Let’s encrypt

Ab sofort können Webmaster, die ihr Web über unser Website-Panel (https://panel.ccc.at) hosten, ein kostenloses Zertifikat von „Let’s encrypt“ aktivieren.

Web-Seiten, die mit dem http-Protokoll aufgerufen werden, übertragen die Inhalte zwischen Browser und Webserver im Klartext. Solange es sich um reine Ankündigungsseiten handelt und keine persönlichen Daten übertragen werden, ist das wenig problematisch.

Doch die meisten modernen Seiten verfügen auch über Anmeldefunktionen und in diesem Zusammenhang gehen auch persönliche Daten auf die Reise. Alle WordPress-Seiten sind davon betroffen, und in diesen Fällen ist es ratsam, statt des http-Protokolls die verschlüsselte Übertragung durch das https-Protokoll zu verwenden.

Die Browser melden den Umstand, dass eine Verbindung nicht sicher ist, meist mit dem Warnhinweis „Nicht Sicher“, eine sichere Verbindung mit einem Schlosssymbol.

Wenn man nun eine Webseite mit dem https-Protokoll betreiben will, benötigt man dazu ein Zertifikat, das ist im Grunde eine große Zahl, deren Gültigkeit von einer vertrauenswürdigen Stelle bestätigt wird.

Die schlechte Nachricht

Der Betrieb einer Zertifizierungsstelle ist ähnlich kostenintensiv wie der eines Notariats, und der Aufwand wird über die Vergabe der Zertifikate finanziert. Bei ClubComputer/ccc.at kostet eines dieser Zertifikate 19,90 Euro pro Jahr. Weil man die Installation auch noch händisch durchführen muss, haben sich bisher nicht allzu viele Webmaster zur Verschlüsselung der Übertragung entschlossen. Der Vorteil des klassischen kostenpflichtigen Zertifikats ist, dass man sich um die alljährliche Verlängerung nicht kümmern muss.

Die gute Nachricht

Seit Anfang 2022 ist es nun jedem Webmaster, der sein Web über unser Website-Panel administriert, möglich. ein kostenloses Zertifikat von Let’s encrypt interaktiv und kostenlos einzurichten. Nachteilig ist, dass das Zertifikat immer nur für drei Monate gültig ist und man danach die Gültigkeitsdauer verlängern muss.

Installation von https im Website-Panel

Die Installation ist in wenigen Klicks erledigt.

WebSite-Panel (https://panel.ccc.at) -> Web Sites -> meinWeb.at -> SSL

Es genügt, auf der linken Seite bei "Install (free) Lets Encrypt Certificate" auf "Install Certificate" zu klicken.

Das sich nun einstellende Seitenbild erinnert an das Ablaufdatum:

Das war*s auch schon!

So eingestellt, hat aber die Webseite den Nachteil, dass sie sowohl mit http als auch mit https erreichbar ist. Was gewünscht ist, dass auch bei der Eingabe von "http" der Besucher automatisch auf die sichere Übertragung mit https umgelenkt wird.

Eine Webseite mit https betreiben – 1

Mit der Installation des Zertifikats kann die Seite mit https angesprochen werden – aber auch mit http. Well also bestehende Verlinkungen auf die Seite mit „http“ beginnen, dann führt der Server diese Anforderung aus, und der Besucher hat noch immer den Eindruck, als wäre die Seite unsicher, denn im Browser erscheint immer noch der Hinweis auf eine unsichere Webseite.

Eine sehr einfache Lösung für diese automatische Umschaltung ist eine Javascript-Zeile im Kopf der Startdatei (default.htm, index.htm…). (Siehe https://stackoverflow.com/questions/4723213/detect-http-or-https-then-force-https-in-javascript)

<script>
if (location.protocol !== 'https:') {
    location.replace(`https:${location.href.substring(location.protocol.length)}`);
}
</script>

Wenn das Protokoll der Anforderung nicht https ist, wird die die angeforderte Ressource (location) um die Länge des Protokolls gekürzt und https vorangestellt.

Diese Lösung funktioniert nur bei Aufruf der Seite über den Domänennamen aber ohne Argument zu einer konkreten Datei – außer der Startdatei. Damit auch Aufrufe zu anderen Dateien (zum Beispiel zum Impressum) auf https umgeschaltet werden, müssen auch alle diese Dateien mit diesem Code ergänzt werden.

Bei Webseiten, die über ein CMS betrieben werden, genügt die Einfügung dieses Codes in die Startdatei, weil die Seiten des Webs nicht Dateien, sondern über einen Pfad oder eine Id aufgerufen werden.

Eine Webseite mit https betreiben – 2

— Die folgende Lösung führt zu einem Fehler in der Datei web.config. eine Lösung wird gesucht (2023-02-10) —

Damit nun die Seite selbständig von http auf https umschaltet, muss man sie dazu anregen. Bei unserem Server geht das über die Datei web.config, die sich im Verzeichnis wwwroot befindet.

In web.config speichert der Server alle Einstellungen, die der Webmaster über das Webseite-Panel vorgenommen hat, zum Beispiel wird dort das Startdokument definiert und auch der Umstand, ob ein Verzeichnis durchsuchbar ist oder nicht. In web.config kann man auch weitergehende Maßnahmen setzen wie eben auch die Umlenkung auf https bei Aufruf mit http.

Die Frage an Google "redirect http https web-config" liefert gleich an erster Stelle einen Treffer der Seite stackoverflow.com: How to force HTTPS using a web.config file – Stack Overflow mit folgendem Code:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <clear />
                <rule name="Redirect to https" stopProcessing="true">
                    <match url=".*" />
                    <conditions>
                        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Der Code zwischen <rule ... </rule> wird in den Abschnitt <rewrite><rules> eingesetzt.

WordPress

Bei Betrieb einer WordPress-Seite kann auch das Plugin „Really Simple SSL“ eingesetzt werden.

Nachteil von https

Bei komplexeren Webs kann der Umstieg auf https auch auf unerwartete Hürden stoßen, und zwar dann, wenn auch auf Objekte außerhalb der eigenen Domäne zugegriffen wird und diese Zugriffe mit http erfolgen. Alle diese Objekte werden nicht angezeigt, Man muss also dafür sorgen, dass auch für alle externen Objekte (Script, Bilder, iFrames…) das https-Protokoll verwendet wird.

Links

Zur Werkzeugleiste springen