SNI: Unterschied zwischen den Versionen

Aus schokokeks.org Wiki
Zur Navigation springen Zur Suche springen
(→‎Unterstützung Browser: konqueror kann sni endlich)
 
(7 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
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 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 =
= 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.
== Unterstützung Serverseitig ==


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.
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 Serverseitig ==
== Unterstützung Browser ==


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 [http://issues.apache.org/bugzilla/show_bug.cgi?id=34607 Patch] notwendig. Für lighttpd ist SNI ebenfalls [http://trac.lighttpd.net/trac/ticket/386 in Arbeit].
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.


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


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).
Insbesondere die Unterstützung durch den aktuellen Internet-Explorer lässt hoffen, dass diese Technik in naher Zukunft großflächig eingesetzt werden kann.
Konqueror unterstützt SNI bislang überhaupt nicht, es wird vermutlich mit KDE 4.1 kommen. Ebenso unterstützt Safari bislang kein SNI.


== Weitere Software ==
== Weitere Software ==
Zeile 27: Zeile 29:
* [http://www.schokokeks.org/blog/eigene_ssl_zertifikate_f_r_kunden Blog-Artikel bei schokokeks.org]
* [http://www.schokokeks.org/blog/eigene_ssl_zertifikate_f_r_kunden Blog-Artikel bei schokokeks.org]
* [http://www.schokokeks.org/blog/presseinformation_schokokeks_org_setzt_f_r_ssl_zertifikate_auf_sni Presseinformation von schokokeks.org]
* [http://www.schokokeks.org/blog/presseinformation_schokokeks_org_setzt_f_r_ssl_zertifikate_auf_sni Presseinformation von schokokeks.org]
[[Kategorie:SSL]]

Aktuelle Version vom 4. Mai 2012, 19:36 Uhr

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