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 IP-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 der Version 0.9.8f. GnuTLS unterstützt SNI schon deutlich länger, seit 0.5.10. Die Webserver Apache (2.2.12) und lighttpd (1.4.24) unterstützen SNI ebenfalls.

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). Safari unterstützt seit Mac OS X 10.5.6 SNI. Konqueror unterstützt SNI seit KDE 4.7.

Nicht unterstützt wird SNI zur Zeit durch den integrierten Browser des Android-Betriebssystems auf Mobiltelefonen.

Insbesondere die Unterstützung durch den aktuellen Internet-Explorer lässt hoffen, dass diese Technik in naher Zukunft großflächig eingesetzt werden kann.

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