Journal

Artikel-Schlagworte: „ubuntu“

Server Name Indication (SNI) mit Ubuntu 10.04 (“Lucid Lynx”)

Bei “Name-based virtual hosts” in Verbindung mit SSL gibt es ein Problem: “by design” war es nicht möglich, mehrere virtuelle SSL-Hosts mit unterschiedlichen Domains und Zertifikaten parallel auf einer IP-Adresse und demselben Port zu betreiben. Problem ist, dass zuerst zwischen Client und Server die verschlüsselte Verbindung aufgebaut wird (bei der das Zertifikat bereits benötigt wird). Erst anschließend werden die HTTP-Header über die verschlüsselte Verbindung gesendet, in denen dann auch der Hostname steht, der jetzt möglicherweise aber gar nicht mehr zum Zertifikat passt. Einzige Lösung war bisher, pro SSL-IP eine eigene IP-Adresse (bzw. notfalls einen anderen Port) zu verwenden.

Abhilfe gibt es theoretisch bereits seit mehreren Jahren: Server Name Indication (SNI) ist eine Erweiterung des SSL-Protokolls, bei der einfach bereits beim Verbindungsaufbau vor dem SSL-Handshake der gewünschte Hostname mitgesendet wird.

Serverseitig benötigt diese Erweiterung insbesondere OpenSSL ab Version 0.9.8f sowie Apache ab 2.2.12 – außerdem müssen beim Kompilieren diverse Flags gesetzt sein. Seit Ubuntu 9.10 “Karmic Koala” sind sämtliche Voraussetzungen erfüllt, ich habe SNI nun erstmalig problemlos mit 10.04 “Lucid Lynx” im Einsatz. SNI funktioniert mit Apache und OpenSSL nun ohne Neu-Kompilieren “out of the box”.

Die Vorgehensweise ist im Prinzip ganz einfach: nach einem

NameVirtualHost *:443

können in den Apache-Konfigurationsdateien mehrere virtuelle SSL-Hosts definiert werden, die jeweils eigene SSL-Zertifikate besitzen. Weitere Infos sind im Apache-Wiki sowie hier zu finden.

Eine weitere Option erlaubt das Erzwingen von SNI: übermittelt ein Client nicht die SNI-Header, kann er den jeweiligen virtuellen SSL-Host nicht erreichen. Diese Option ist standardmäßig auf “off”.

SSLStrictSNIVHostCheck on

Der Haken: neben dem Server muss natürlich auch der Client SNI unterstützen. Internet Explorer unter Windows XP unterstützen SNI generell nicht (wobei es Berichte gibt, dass mit XP SP3 die Unterstützung vorhanden ist), Konqueror beherrscht SNI ebenfalls nicht. Ein Überblick über die Browser-Unterstützung findet sich hier. Ob ein Browser SNI unterstützt, kann man bei sni.velox.ch testen.

Zumindest in einigen Bereichen kann man SNI trotz der teilweise fehlenden Client-Kompatibilität bereits einsetzen – die client-seitige Unterstützung wird sich in Zukunft weiterhin verbessern.

Ein Artikel zum Thema ist in der c’t 23/09 erschienen und ebenfalls bei sni.velox.ch zu finden.

Upgrade auf Ubuntu 8.10 (Intrepid Ibex) …

… viel mehr gibt es dazu nicht zu sagen. Lief problemlos, alles funktioniert wie gehabt (mit einigen neuen Sachen wie Tabs im Dateimanager Nautilus). Und mit einer Menge neuer Software-Versionen – das ist das tolle an Open Source: die Software wird kontinuierlich besser, keine jahrelangen Stillstände wie beim Desktop-Betriebssystem-Marktführer.

Lediglich Compiz funktionierte teilweise nicht (die “Minimieren”-Animation) – dies ließ sich durch ein Zurücksetzen der Compiz-Konfiguration aber beheben.

Auf die nächsten 6 Monate…

Dust – ein elegantes, schwarzes Theme für Ubuntu

Neulich entdeckt und immer noch begeistert: das Ubuntu Dust Theme. Nachdem ich auf meinem Notebook, auf dem bereits Ubuntu Intrepid Ibex läuft, das neue dunkle NewHuman-Theme getestet hatte, bin ich von dunklen Themen für den Desktop recht angetan.

Ich finde den Eindruck sehr gelungen und elegant. Lediglich bei einigen älteren GTK-Anwendungen ist das Thema noch unvollendet. Es gibt ein passendes Firefox-Theme dazu; für Opera verwende ich das recht passende, jedoch an Google Chrome angelehnte Opera Google Chrome Dust-Theme.

Bevor das Theme verwendet werden kann, muss eine aktuelle Version des Murrine-Renderers installiert werden, die allerdings als .deb für Ubuntu Hardy Heron und Intrepid Ibex vorliegt. Alle Dateien sowie Anleitungen zur Installation gibt es hier.

Internet Explorer unter Linux

Obwohl der Internet Explorer nicht unbedingt der beste Browser da draußen ist, benötigt man ihn dennoch – nämlich zum Testen von Websites. Durch meinen Wechsel zu Ubuntu Linux musste ich mir eine neue Lösung suchen. Da ich Windows XP noch auf einer Partition installiert habe, kann ich zwar zum Testen Windows booten – aber es geht noch besser.

Dank Wine kann man Windows-Software unter Linux laufen lassen. Und dank einem weiteren Projekt, IEs4Linux, wird die Installation von Internet Explorer 5, 5.5, 6 und 7 zum Kinderspiel.

Zuerst muss Wine und cabextract installiert werden. Das geht dank vorhandener Pakete unter Ubuntu mit

sudo aptitude install wine cabextract

Danach lädt man sich das aktuelle Archiv von IEs4Linux, entpackt es und startet die Installation:

wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz
tar xvfz ies4linux-latest.tar.gz
cd ies4linux-*
./ies4linux

Im weiteren Verlauf kann man auswählen, welche Versionen man installiert haben möchte. Dann werden die Installationspakete vom Microsoft-Server geladen und automatisch unter Wine installiert.

Die Browser funktionieren bei mir – allerdings mit einigen Ecken und Kanten. Aber zum Testen sollte es allemal reichen.

gedit als Quelltexteditor

Im Ausgangszustand hat der Standard-Texteditor von Gnome nicht alle Features, die man von einem Quelltexteditor erwartet. Der Tipp: einfach das Paket “gedit-plugins” installieren. Dann hat man unter anderem in den Einstellungen die Möglichkeit, Spaces statt Tabs zu verwenden, eine Markierung oder Zeilennummern anzuzeigen, Klammern zu markieren, automatischen Einzug und sehr vieles mehr. Damit ersetzt er nun ganz gut mein Notepad++, was ich unter Windows gern verwendet habe.