Experiment gescheitert – mein Rückblick auf die Basketball Landesliga Brandenburg 2018/19

Am vergangenen Wochenende fand das Finale der diesjährigen Brandenburger Basketball Landesliga statt. Mit zwei sehr deutlichen Siegen gegen Oranienburg und den Gastgeber Frankfurt holten sich unsere Nachbarn aus Babelsberg in ihrer dritten Saison den Titel und damit dem Aufstieg in die Oberliga.

Für mein Team von der Herren 3 des USV Potsdam endete die Saison leider auf der anderen Seite der Tabelle! Bereits vor dem letzten Spieltag der regulären Saison standen wir mit nur 2 Siegen aus 16 Spielen als erster sportlicher Absteiger fest.

Damit ist das Experiment „Jugend forscht“ im ersten Anlauf gescheitert! Oder doch nicht? Fangen wir von vorne an:

Experiment gescheitert – mein Rückblick auf die Basketball Landesliga Brandenburg 2018/19 weiterlesen

Lokale HTTPS-Zertifikate mit mkcert

Bernhard hatte unsere Kollegen bei VCAT vor gut 2 Wochen auf einen Artikel bei Golem.de hingewiesen. Hier ging es darum, dass Filippo Valsorda – ein Verschlüsselungsexperte aus dem Google Go Team – ein kleines Werkzeug entwickelt hat, mit dem man eigene Zertifikate erstellen kann, um sichere HTTPS-Verbindungen in einer lokalen Entwicklungsumgebung zu nutzen.

Die Herausforderung

Bereits seit 2017 sollten Webseiten grundsätzlich alle Inhalte über eine gesicherte HTTPS-Verbindung ausliefern. Mittlerweile verweigern immer mehr Browser die Anzeige von ungesicherten Seiten. Dank kostenfreier Tools wie Let’s Encrypt ist die Erzeugung von Zertifikaten für Domains, die im WWW erreichbar sind, kein Problem. Anders sieht dies für Adressen aus, die für Entwicklungsaufgaben nur lokal oder im privaten Netzwerk zu erreichen sind. Da diese Domains nicht vom öffentlichen Netzwerk aus aufgerufen werden können, kann ein extern laufender Service zur Erstellung eines Zertifikates auch nicht auf diese zugreifen.


Die Lösung

Mit mkcert steht nun ein kleines, aber sehr feines Tool zur Verfügung, um lokal eigene HTTPS-Zertifikate für eine beliebige Domain zu erzeugen. Ich habe es auf einem Rechner mit Windows 10 und XAMPP getestet. Das ging unglaublich leicht und lässt sich jederzeit für weitere Adressen wiederholen:

Einsatz unter Windows 10 mit XAMPP

Lokal entwickle ich unter dem Namespace

*.local

Für die Arbeiten an meinem Wiki-Tooltip-Plugin für WordPress habe ich z.B. die Domain

dev.n1da.net.local

im Einsatz.

Der Web- und Datenbank-Server wird von dem bekannten Toolkit XAMPP bereitgestellt.

Installation

Die Installation von mkcert ist sehr einfach: Man findet Pakete für verschiedene Betriebssysteme zum Download bei GitHub! DIe Version für Windows muss man nur herunterladen und in ein beliebiges Verzeichnis verschieben. Ich habe es der Einfachheit halber unter

c:\Program Files>

abgelegt. Für die nächsten Schritte muss man einfach eine Shell starten. Ich habe die Standard-Eingabeaufforderung verwendet. Je nachdem, wie die Rechte eingestellt sind, muss man sie als Administrator ausführen! Dann wechselt man in das Verzeichnis, wo die mkcert.exe liegt und startet die Installation:

mkcert.exe -install

Diese Anweisung installiert nicht wirklich eine Anwendung. Vielmehr werden zwei Dateien mit einem Root-Zertifikat und einem privaten Schlüssel erzeugt. Man muss eine Sicherheitswarnung von Windows bestätigen und erhält als Ausgabe die Pfadangabe, unter der man die Dateien finden kann.

Zertifikate erzeugen

Nach der Installation kann man nun beliebig oft SSL-Zertifikate erzeugen. In meinem Beispiel mit der Anweisung:

mkcert.exe dev.n1da.net.local

Dadurch werden im aktuellen Verzeichnis wiederum zwei Dateien erzeugt: das Zertifikat für die genannte Domain sowie ein Schlüssel dafür. Beide Dateien kann man nun in einen beliebigen Ordner verschieben, der durch XAMPP erreicht werden kann.

Die Ein- und Ausgaben der Aufrufe sieht man in diesem Screenshot:

mkcert - Installation & Zertifikate erzeugen
Installation von Root-Zertifikat und privatem Schlüssel sowie die Erzeugung von lokalen Zertifikaten für eine Domain mit mkcert.

XAMPP konfigurieren

Nun muss man den Apache im XAMPP nur noch für die Verwendung von SSL konfigurieren. Dazu habe ich einfach die httpd-vhosts.conf wie folgt angepasst:

<VirtualHost *:443>
    ServerName dev.n1da.net.local
    ServerAdmin webmaster@n1da.net

    DocumentRoot "C:/<-- PATH TO WEB-ROOT -->/xampp/dev.n1da.net.local/public"

    ErrorLog "logs/dev.n1da.net.local-error.log"
    CustomLog "logs/dev.n1da.net.local-access.log" common

	SSLEngine on
	SSLCertificateFile "C:/<-- PATH TO WEB-ROOT -->/xampp/dev.n1da.net.local/dev.n1da.net.local.pem"
	SSLCertificateKeyFile "C:/<-- PATH TO WEB-ROOT -->/xampp/dev.n1da.net.local/dev.n1da.net.local-key.pem"
	
	DirectoryIndex index.html index.htm index.php index.php4 index.php5
    
    <Directory "C:/<-- PATH TO WEB-ROOT -->/xampp/dev.n1da.net.local/public">
        Options Indexes FollowSymLinks
        AllowOverride all
        Require all granted
    </Directory>
</VirtualHost>

Nach einem (Neu-)Start von XAMPP bzw. des Apache kann man die lokale Domain über HTTPS aufrufen:

Sichere Verbindung zu lokaler Webseite mit mkcert
Das gewünschte Schloss wird neben der URL angezeigt. In den Details sieht man die gewünschten Infos.

Fazit

mkcert ist ein sehr leichtes Tool – in doppelter Hinsicht: Es kommt ohne großen Schnick-Schnack daher und ermöglicht ohne viel technische Kenntnisse die Erzeugung von lokalen HTTPS-Zertifikaten. Prädikat: Besonders wertvoll!

WP Wiki Tooltip – neue Version 1.9.0 verfügbar

Im vergangenen Jahr blieb leider nicht viel Zeit, an meinem WP Wiki Tooltip Plugin zu arbeiten. Nun konnte ich in der Weihnachtszeit ein paar Stunden abknapsen und schließlich in dieser Woche eine neue Version zur Verfügung stellen.

Ausschlag gebend für die neue Version waren drei Wünsche von verschiedenen Benutzern:

  1. Der älteste Wunsch wurde bereits vor über 10 Monaten geäußert: Ein Anwender wollten den Inhalt der Tooltips nicht direkt vom Anfang einer Wiki-Seite auslesen, sondern von einem der dort definierten Kapitel.
  2. Vor gut einem Monat meldete ein anderer Benutzer, dass die Tooltips nach dem Laden ihrer Inhalte irgendwie wackeln. Dem war tatsächlich überall so. Ich empfand es nicht als störend, wollte dem Thema aber auf den Grund gehen.
  3. Last but not least steht seit Dezember mit WordPress 5 und dem neuen Editor „Gutenberg“ ein neues maßgebliches Element zur Verfügung, dem sich auch mein Plugin annehmen muss.

Inhalt von Kapiteln

Die Anfrage von Thomas Bellis fand ich von Anfang an sehr reizvoll: Er wollte den Inhalt der Tooltips nicht nur vom Anfang einer Wiki-Seite auslesen lassen, sondern wahlweise auch ein bestimmtes Kapitel als Inhaltsquelle verwenden. Die Umsetzung war allerdings nicht so einfach. Glücklicher Weise bietet die Wiki-API die Möglichkeit, alle Kapitel einer Seite auszulesen und anschließend auch den Inhalt eines bestimmten Kapitels abzufragen. Lediglich die Fehlerbehandlung brauchte etwas mehr Aufwand und war Grund für einige neue Optionen in den Einstellungen des Plugins.

Wackeln nach dem Laden

Das komische Wackeln nach dem Laden der Inhalte in einem Tooltip entpuppte sich nicht als Fehler, sondern als Feature. Das Tooltipster-Plugin liefert zwei Eigenschaften, mit denen man die Animationen steuern kann,

  1. wenn ein Tooltip erscheint und wieder ausgeblendet wird, und
  2. wenn sich die Inhalte in einem Tooltip aktualisieren.

Die Animation nach dem Update der Inhalte hielt ich für wenig sinnvoll und habe sie standardmäßig deaktiviert. Die Animation beim Erscheinen und Ausblenden finde ich allerdings recht spannend, so dass diese nun in den Einstellungen gezielt festgelegt werden können – inkl. einer Preview für alle verfügbaren Effekte!

WP Wiki Tooltip und Gutenberg

Auch wenn die Einführung des neuen Editors schon lange angekündigt war, konnte ich mich noch nicht näher mit den Konsequenzen für mein Plugin auseinandersetzen. Mir war klar, dass der Shortcode mit seinen Attributen weiterhin funktionieren würde. Was aber mit dem Plugin für den Tiny MCE geschehen würde, blieb offen. Mittlerweile ist Gutenberg als Standardeditor eingeführt und wie zu erwarten war, steht das Plugin nicht mehr in den Standardelementen zur Verfügung.

Allerdings gibt es nun einen Block „Classic“, der alle bekannten Icons und Funktionen des ehemaligen Editors bereit hält. Und siehe da: Auch mein Plugin wird hier geladen und das gewohnt grüne Icon angezeigt! Aber ganz so einfach ist es natürlich nicht. Die Übersetzung aller Texte im Plugin wurde nicht mehr wie gewohnt unterstützt.

Neuer I18N Support für JavaScript

Nach einigen Stunden der Recherche fand ich heraus, dass mit Gutenberg auch eine neue Art der Internationalisierung und Lokalisierung für JavaScript veröffentlicht wurde. Diese habe ich nun auch implementiert. Es funktioniert auch fehlerfrei! Allerdings wird die Übersetzung noch nicht durchgereicht. Daher sind aktuell noch alle Texte im Plugin in English. Ich hoffe, hier kann ich bald mit einer Lösung aufwarten…

Fazit

Die neue Version steht seit dem 1. Januar 2019 im Repository und bei Github zur freien Verwendung zur Verfügung. Ich hoffe, dass ich für Gutenberg bald weitere Funktionen nachschieben kann und das nächste Update nicht wieder 10 Monate braucht 😉