SNI: Unterschied zwischen den Versionen

Aus schokokeks.org Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
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 =
= Server Name Indication =


== Problem: Mehrere SSL-Zertifikate auf einer IP ==
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.
 
Das SSL-Protokoll sieht klassischerweise nur vor, ein SSL-Zertifikat pro IP auszustellen. Das bedeutet, wenn mehrere virtuelle Hosts eine IP nutzen, können diese kein korrektes Zertifikat ausliefern.


Hierfür gibt es eine recht neue Lösung: Server Name Indication (beschrieben in RFC 3546) ermöglicht, pro virtuellen Host ein Zertifikat zu vergeben.


== Unterstützung Serverseitig ==
== Unterstützung Serverseitig ==
Zeile 15: Zeile 15:
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).
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.
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 ==
== Weitere Software ==

Version vom 3. April 2008, 15:19 Uhr

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