SNI

Aus schokokeks.org Wiki
Zur Navigation springen Zur Suche springen

Klassischerweise erlaubt die SSL-Protokollschicht pro IP-Adresse und TCP-Port nur ein Zertifikat. Wenn also mehrere (virtuelle) Hosts unter der selben Adresse erreichbar sind, wie es bei Websites üblich ist, kann der im Zertifikat fest eingetragene Hostname nur für eine einzige Adresse gültig sein. Alle anderen Adressen erhalten das für sie unpassende Zertifikat.


Server Name Indication

Für dieses Problem gibt es seit kurzer Zeit eine Lösung: Server Name Indication (beschrieben in RFC 3546). Diese Erweiterung des TLS-Protokolls ermöglicht, vor Übertragung des Zertifikats den gewünschten Hostname zu übertragen. Damit wird es möglich, pro virtuellen Host ein Zertifikat zu hinterlegen.


Unterstützung Serverseitig

OpenSSL unterstützt SNI seit kurzem in der Version 0.9.8f. GnuTLS unterstützt SNI schon deutlich länger, seit 0.5.10. Für Apache ist momentan noch ein Patch notwendig. Für lighttpd ist SNI ebenfalls in Arbeit.

Unterstützung Browser

Mozilla Firefox und Opera unterstützen SNI schon länger problemlos, Internet Explorer erst ab Version 7. Ebenso unterstützen fast alle Mozilla-basierenden Browser SNI (bspw. Epiphany). Konqueror unterstützt SNI bislang überhaupt nicht, es wird vermutlich mit KDE 4.1 kommen. Ebenso unterstützt Safari bislang kein SNI.

Insbesondere die Unterstützung durch den aktuellen Internet-Explorer lässt hoffen, dass diese Technik in naher Zukunft großflächig eingesetzt werden kann, sobald von Safari und Konqueror die nächsten Versionen erscheinen.

Weitere Software

Theoretisch lässt sich SNI auch für andere Systeme außer http, die virtuelle Hosts nutzen, einsetzen, etwa Jabber/XMPP. Über den Stand der Unterstützung ist uns noch nichts bekannt.

Links/Hintergründe