stiehler.dev Marian Stiehler

Eine neue Internetseite

Man lernt ja immer dazu. Und außerdem war Weihnachten. Also schenkte ich mir eine neue Internetseite.

Speed

Das Ziel Nummer 1: Geschwindigkeit. Meine Squarespace-Seite war, zumindest von Europa aus, einfach zu langsam.

Die neue Seite verwendet eine Reihe von Technologien, um ihre Auslieferung zu beschleunigen: Sie ist statisch (erzeugt auf meinem Laptop mit Jekyll), sie läuft auf einem großzügig dimensionierten Virtual Server bei AWS in Frankfurt (anders als die Squarespace-Seite, die aus New York herreisen musste), wird von Google Pagespeed beschleunigt, und sie wird ausgeliefert von dem Content Delivery Network von Cloudflare, das nebenbei noch allerlei Tricks anstellt, wie etwa Bilder herunterrechnen etc. Dabei ist sie sinnvoll verschlüsselt und wird, wo unterstützt, mit http 2 übertragen. Sogar das kommende http 3 (QUIC) wird bereits unterstützt, obwohl die meisten Browser noch keine Unterstützung bieten.

Mit diesen Maßnahmen und einer sorgfältigen Optimierung der Bilder und des Quellcodes – ich hatte vorübergehend sogar das favicon entfernt, weil es zu viel Ladezeit brauchte – habe ich die Lade- und Renderzeit im Test am Desktop unter Optimalbedingungen auf 0,3 Sekunden reduzieren können. Das nenne ich: schnell.

Im weltweiten Test von uptimia.com erreicht sie im Schnitt eine Average Load Time von 1,41 Sekunden – von Deutschland aus, aber auch etwa von Australien, China und Nigeria aus.

Im Google Pagespeed Rating erreicht sie nun in der Regel 100 Punkte – die Squarespace-Seite erreichte im schlechtesten Fall (dem QTc-Rechner) nur 6. Sogar der QTc-Rechner kommt jetzt auf 100 Punkte, wenn er eine Breitband-Verbindung und einen leistungsfähigen Prozessor zur Verfügung hat. Ich hoffe, meine User wissen die neuen Reaktionszeiten zu schätzen.

Security

Auch sicherheitstechnisch muss die Seite sich nicht verstecken – wie immer bei meinen Projekten. Hier ein Auszug: Die Installation von Diensten und Sprachen auf dem Server ist absolut minimal. Der Apache-Webserver ist gehärtet. Zwei Firewalls und fail2ban für SSH schützen den Server – neben anderen Maßnahmen. SSH unterstützt nur sichere Protokolle und authentifiziert wird über einen 4.096-bittigen Schlüssel und TOTP-Zwei-Faktor-Authentifizierung.

Der Webverkehr ist über TLS vollverschlüsselt, mit einem hochwertigen Zertifikat (siehe SSLLabs: A+) – eine unverschlüsselte HTTP- oder eine schwach verschlüsselte HTTPS-Verbindung sind gar nicht erst möglich (außerdem steht die Top-Level-Domain .dev dauerhaft auf der HSTS preload list). Der Server sendet sicherheitsrelevante Header mit (siehe securityheaders.com: A). Die Webseite erreicht damit im Test beim Mozilla Observatory die sehr gute Note B+ – eine höhere Note wäre nur zu erreichen, wenn ich keine Inline-Scripts verwenden würde, was leider mit den Sicherheitsmaßnahmen von Cloudflare (siehe unten) kollidiert.

Der Domaineintrag selbst ist mit DNSSEC gesichert (siehe Verisign DNSSEC Debugger) und lässt nur Zertifikate von meiner Zertifizierungsstelle zu.

Die Webseite wird von einer hochwertigen Web Application Firewall von Cloudflare geschützt. Auch ein hochwertiger DDoS-Schutz ist vorhanden. Sogar wenn der Server offline gehen sollte, wird die Webseite teilweise trotzdem ausgeliefert (sie wird vom Content Delivery Network gecached).

Und zu guter letzt befinden sich gar keine kritischen Inhalte auf dem Server; nur diese Webseite, die ohnehin komplett öffentlich einsehbar ist und von der, da sie auf meinem Laptop erzeugt wird, jederzeit ein aktuelles Backup zur Verfügung steht. Ein Ausfall meiner privaten Webseite wäre auch zu verschmerzen. Und ich kann den Server mit einem Klick schadsoftware-frei neu aufsetzen, weil ein Backup besteht. Ein Hack lohnt nicht.

außerdem…

Der Relaunch hatte noch einige weitere Ziele: Das Hamburger-Menü wollte ich abschaffen, um einen direkteren Zugriff auf die (wenigen) Seiten zu bieten. Das Design sollte etwas schlichter werden. Und zu guter Letzt wollte ich auch die Kontrolle über meinen eigenen Server haben.

Die Blog-Beiträge sind noch längst nicht alle migriert. Das mache ich in den folgenden Tagen.

Bildquelle: CC0-Lizenz, freiwillige Quellenangabe: Photo by zhang kaiyv from Pexels