Baaten ICT Security
  • Welkom
  • Diensten
  • Kennis
  • Blog
  • Publicaties
  • Over
  • Contact
  • Menu Menu

Virtual hosting met meerdere SSL certificaten

8 augustus 2008/0 Reacties/door Dennis Baaten

Het is algemeen bekend dat het niet mogelijk is om meerdere domeinen op een name-based virtual hosting server (met maar één ip) te voorzien van een eigen SSL certificaat. Vandaag kwam ik er echter achter dat dit wél kan, maar dat de server én de client dan wel aan een aantal eisen moeten voldoen.

Het idee achter een name-based virtual hosting server, is het hosten van meerdere domeinen vanaf één ip-adres. Een overweging die vooral vanuit kosten oogpunt interessant kan zijn. Deze methode heeft echter een nadeel: wanneer je gebruik wil maken van SSL om een beveiligde verbinding tussen client en server op te zetten, kan dit maar voor één domein op de server.

Internet verkeer wordt gerouteerd op basis van ip-adressen en poortnummers (OSI laag 3). Wanneer je in je browser een website wil bezoeken, wordt er een HTTP-request naar de server gestuurd. Nadat dit HTTP-request bij de server is aangekomen wordt het intern doorgezet naar de webserver applicatie (bijvoorbeeld Apache). De webserver kijkt vervolgens in de header van het HTTP-request naar de host (OSI laag 7) en bepaald aan de hand van deze waarde welke website de client wil bezoeken.

Het probleem ontstaat echter wanneer er voorafgaand aan HTTP-verkeer, eerst een versleutelde SSL verbinding opgezet moet worden. Er komt dan namelijk een “zullen-we-een-ssl-verbinding-opzetten”-verzoek binnen bij de webserver (OSI laag 6), maar de webserver kan uit dat bericht niet afleiden welk domein de client wil bezoeken. Met als gevolg dat de webserver ook niet weet welk SSL certificaat er gekozen moet worden voor het opzetten van de versleutelde verbinding. Elk domein heeft namelijk een eigen certificaat.

Ergens kon ik mij niet voorstellen dat er voor dit probleem geen oplossing bestond. Daarom ging ik eerst met behulp van tshark (commandline versie van Wireshark) de berichten van een SSL-handshake analyseren. Op deze manier kwam ik erachter dat wanneer ik in Windows XP Pro de browser Firefox (versie 3.0.1) gebruik, elk derde frame (het client hello bericht) de extension “server_name” bevatte. In RFC3546 lees ik hierover het volgende:

It is RECOMMENDED that clients include an extension of type “server_name” in the client hello whenever they locate a server by a supported name type.

A server that receives a client hello containing the “server_name” extension, MAY use the information contained in the extension to guide its selection of an appropriate certificate to return to the client, and/or other aspects of security policy.

Deze extension is ook bekend onder de naam Server Name Indication (SNI). En ook wikipedia zegt dan het met met SNI mogelijk is, om de webserver het juiste SSL-certificaat te laten selecteren:

An extension to TLS called Server Name Indication (SNI) addresses this issue by sending the name of the virtual host as part of the TLS negotiation[1]. This enables the server to “switch” to the correct virtual host early and present the browser with the certificate containing the correct CN.

Deze functionaliteit is geen standaard onderdeel van een webserver, maar kan wel worden toegevoegd. De reden dat mijn server op dit moment maar één SSL-certificaat kan gebruiken, is omdat apache2 (nog) niet kan omgaan met SNI. Daarvoor zal ik eerst een module (mod_gnutls of openSSL library vanaf versie 0.9.8f) moeten installeren.

Ook las ik dat er een vrij nieuwe browser nodig is om dit te laten werken. Het blijkt dat Firefox vanaf versie 2.0 ondersteuning biedt voor SNI. Maar Internet Explorer 7 doet dat bijvoorbeeld alleen wanneer het draait op Vista (of nieuwer). Dat heb ik meteen maar even getest en inderdaad; bij het gebruik van Internet Explorer 7 onder Windows XP Pro, bevat het derde frame (client hello) niet de extension “server_name”.

Kortom, op internet kun je er nog niet vanuit gaan dat elke client of server deze functionaliteit gebruikt. Grote kans dat bijvoorbeeld iemand je SNI-ready server bezoekt met een browser die SNI niet ondersteund. En dan werkt het natuurlijk niet. Maar in een private infrastructuur, waar je eisen kunt stellen aan de omgeving, biedt deze functionaliteit absoluut mogelijkheden.

Afbeelding van ZDNET.

https://www.baaten.com/wp-content/uploads/2008/08/encryptie-slot.jpg 600 800 Dennis Baaten https://www.baaten.com/wp-content/uploads/2016/03/logo_baaten_ict_security_web_150.png Dennis Baaten2008-08-08 09:12:212017-02-05 15:14:32Virtual hosting met meerdere SSL certificaten
0 antwoorden

Plaats een Reactie

Meepraten?
Draag gerust bij!

Geef een reactie Reactie annuleren

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie gegevens worden verwerkt.

Baaten ICT Security Blog

Wij zijn onafhankelijk en gespecialiseerd in security, privacy en ethical hacking. Op dit blog schrijven wij over deze onderwerpen.

Verhuizing

Blogs uit 2014 of eerder zijn geschreven vóór het ontstaan van Baaten ICT Security en zijn overgenomen van het oude persoonlijke blog van eigenaar Dennis Baaten.

Reacties

  • gotovye_hdEi op VN KozijnTechniek overtreed privacywet
  • avariynoe_vgPr op VN KozijnTechniek overtreed privacywet
  • DYARY dyary op USB-stick kapot, en dan?
  • Daniel op USB-stick kapot, en dan?
  • Joyce op Marktplaats oplichters aan het werk
  • B op Marktplaats oplichters aan het werk
  • Dennis Baaten op Marktplaats oplichters aan het werk
  • chris op Marktplaats oplichters aan het werk
  • Harry op Marktplaats oplichters aan het werk
  • Nadia op Marktplaats oplichters aan het werk

Creative Commons Licentie


Alle werken van het Baaten ICT Security Blog onder een Creative Commons Naamsvermelding-NietCommercieel 4.0 Internationaal-licentie, tenzij expliciet anders aangegeven.

Contact

Heeft u een vraag over een van onze blogs of wilt u hierover van gedachten wisselen? Plaats een reactie bij het desbetreffende blog of neem op een andere manier contact met ons op.

Neem contact op voor een vrijblijvende kennismaking!

© Copyright - Baaten ICT Security
  • Link naar LinkedIn Link naar LinkedIn Link naar LinkedIn
  • Link naar GitHub Link naar GitHub Link naar GitHub
  • Link naar Support Link naar Support Link naar Support
  • MVO
  • Privacyverklaring
  • Coordinated Vulnerability Disclosure
  • Algemene Voorwaarden
Link naar: DNS protocol onveilig Link naar: DNS protocol onveilig DNS protocol onveilig Link naar: DNS protocol onveilig: deel 2 Link naar: DNS protocol onveilig: deel 2 DNS protocol onveilig: deel 2
Scroll naar bovenzijde Scroll naar bovenzijde Scroll naar bovenzijde