Multiples certificats SSL sur la même machine ou IP : TLS SNI
SNI : Server name indication
Server name indication (SNI) est une extension du protocole TLS (Transport Layer Security, protocole de sécurisation des échanges sur internet et successeur du SSL).
SNI indique quel hostname est contacté par le navigateur en préambule du ‘’Handshake- process’’. Ceci permet à un serveur de connecter plusieurs certificats SSL à une seule adresse IP (mais des noms de hôtes différents) et donc de mutualiser des hébergements pour des sites sécurisés en HTTPS
Comment fonctionne le SNI ?
Quand un client visite votre site internet, son navigateur établit une connexion avec le web serveur et lui envoie le nom ainsi que le nom de domaine de la page internet (URL). En établissant une connexion SSL ou TLS, le process se complique un peu plus. Le navigateur aura besoin d’un certificat digital du serveur avant même de savoir quelle est la page de connexion voulue. Ensuite, il va comparer le nom du domaine de la page visée avec les noms inclus dans le certificat du serveur.
Si les noms concordent, la connexion est validée, sinon, l’utilisateur est généralement prévenu d’un problème et la connexion est alors interrompue, car ce problème peut signaler une tentative d’attaque de type « man in the middle ».
En raison du fait que le nombre d’adresses IP soit limité (Pénurie IPV4) et que l’assignation d’adresses supplémentaires augmente considérablement les couts d’hébergement, le SNI est la solution à ce problème. Les navigateurs qui supportent cette technologie vont immédiatement communiquer le nom du site internet auquel le visiteur souhaite se connecter pendant l’initialisation de la connexion sécurisée afin que le serveur sache quel certificat renvoyer. En d’autres termes, le serveur choisit le domaine virtuel plus tôt dans le process et donc présente au navigateur le bon certificat contenant le bon DNS. Une adresse IP unique peut donc être utilisée pour servir un groupe de domaines pour lesquels il ne serait pas facile d’obtenir un certificat commun.
Inconvénients :
Le SNI n’est pas encore une pratique commune car certains navigateurs (surtout au niveau entreprise) ne supportent pas cette technique, assez récente.
Compatibilité SNI :
Les navigateurs/serveurs qui supportent/ne supportent pas le SNI en date de MAI 2011 sont les suivants :
Navigateurs compatibles:
- Internet Explorer 7+
- Firefox 2+
- Opera 8+
- Chrome
- Safari 3.2.1+ sur Mac OS X 10.5.6+
- Safari sous Vista ou Seven
- MobileSafari sur iOS 4.0+
- WindowsPhone 7
- Android 3+
Serveurs compatibles:
- Microsoft IIS8 (sous Windows Server 2012)
- OpenSSL 0.9.8f (0.9.8k recommandé)
- Apache 2.2.12+
- lighthttpd 1.4.24+
- Apache Tomcat avec Java 7+
Navigateurs incompatibles:
- Internet Explorer sous XP
- Safari sous XP
- Blackberry
- Java 6
- Android 2.3
- Windows Mobile (marche à partir version 7)
Serveurs incompatibles:
Microsoft IIS avant la version 8
Saâd
Consultant Sécurité