Journal

Artikel-Schlagworte: „IT“

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.

“Call Wolfgang” – Installation gegen Überwachung

Der Komponist Johannes Kreidler hat eine Installation gegen die zunehmende Überwachung gestartet. Mit “Call Wolfgang” will er Aufmerksamkeit für die ausufernde Telekommunikationsüberwachung und die Vorratsdatenspeicherung wecken.

Seine Installation besteht aus zwei Rechnern, die stetig per VoIP miteinander kommunizieren – über einen Server im Iran. Dabei tauschen sie algorithmisch aneinandergereihte Botschaften aus Koranversen, “verdächtigen” und zufälligen Wörtern aus.

Zusätzlich protestiert er mit seiner Installation gegen das Urheberrecht und die GEMA: im Hintergrund des “Telefonats” läuft seine selbst komponierte Musik. Da er vermutet, dass sein “Gespräch” vom BKA aufgezeichnet wird, fordert er die GEMA dazu auf, gegen die Verletzung seiner Urheberrechte einzuschreiten.

(via heise)

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.

Midori: ein minimaler WebKit-Browser für Gnome

Gerade habe ich auf der Suche nach einem WebKit-Browser für Linux etwas interessantes gefunden: Midori. Ein minimaler GTK-Browser, der aber trotzdem überraschenderweise sehr praktische Funktionen mitbringt: beispielsweise einen Papierkorb für geschlossene Tabs und eine recht gute Suchmaschinenverwaltung mit Keywords! Obwohl er noch in einer Alpha-Version vorliegt, ein sehr interessanter Browser, zumindest zum Testen von Websites – und er ist auch in den Ubuntu-Paketquellen verfügbar.