IIS - Host Headers

Deze handleiding is voor IIS 7 en 8. Voor IIS 5 en 6 is een andere handleiding beschikbaar.

Achter de schermen

Een website in IIS is gekoppeld aan een IP-adres, poortnummer en Host Header-naam. Elke website-configuratie wordt opgeslagen in de metabase-eigenschap ServerBindings, in het formaat: IP:Poort:Hostnaam.

Bijvoorbeeld: 94.228.131.81:80:www.sslcertificaten.nl.

De Host Header-naam (www.sslcertificaten.nl in het voorbeeld) en IP (94.228.131.81 in het voorbeeld) mogen weggelaten worden. Het poortnummer volstaat.

Om te bepalen welke website een verzoek moet behandelen, controleert IIS:

  • Of er op het IP-adres/poortnummer waar een aanvraag binnenkomt een website is geconfigureerd. Deze moet ook overeenkomen met de Host-Header waarde uit het verstuurde HTTP-bericht. Als er een overeenkomstige website wordt gevonden, wordt het verzoek doorgestuurd naar die website.
  • Als er geen website een exacte match met de Host-Header heeft, controleert IIS of er een website geconfigureerd is om alle IP-adressen (in IIS-beheer aangegeven met 'Alle niet toegewezen') en de poort in de gaten te houden, waarop de aanvraag is binnengekomen met een geconfigureerde Host Header-naam. De Host Header-naam controleert of overeenkomt wat wordt verzonden in het HTTP-bericht en als er een overeenkomst wordt gevonden stuurt IIS het verzoek naar die website.
  • In de laatste stap controleert IIS of er een website met een lege Host Header is geconfigureerd in IIS, die vervolgens de aanvraag zal verwerken.


SSL Host Headers in IIS 7 en 8

Met SSL Host Headers kun je een SSL certificaat voor meerdere IIS-websites op hetzelfde IP-adres te gebruiken. Via de IIS Manager interface is het standaard mogelijk om één website te verbinden per IP-adres aan poort 443 en een SSL certificaat. Als je probeert om een tweede website te verbinden op het IP-adres aan hetzelfde certificaat zal IIS de foutmelding geven dat er een poortconflict is, zodra je de website start. Om toch een certificaat toe te wijzen aan meerdere websites op hetzelfde IP-adres kun je SSL Host Headers instellen. Met de onderstaande instructies kun je dit instellen. Meer informatie over Host Headers in IIS.


Welk type SSL certificaat heb je nodig?

Omdat je maar één certificaat kunt gebruiken zul je alle host names van de websites die je wilt beveiligen, op moeten nemen in het certificaat. Anders krijg je een 'name mismatch' foutmelding.
 

  • Als elk van je IIS websites een subdomein gebruikt van een enkele domeinnaam kun je een wildcard certificaat voor *.jedomein.nl aanvragen en hiermee de domeinnamen
    site1.domein.nl, site2.domein.nl, etc. beveiligen.
  • Als jouw IIS websites verschillende domeinnamen hebben (mail.domein.nl, mail.domein2.com, etc.), dan kun je een multi-domeinnaam certificaat aanvragen.
  • Vraag een SSL certificaat aan en installeer deze in IIS. Handleidingen vindt u hier.


Instellen SSL Host Headers

Na installatie van het certificaat in IIS verbind je de eerste website op het IP-adres.


IIS - Instellen Host Headers

  1. Open de command prompt via Start Menu  → cmdEnter.
  2. Navigeer naar C:\Windows\System32\Inetsrv\ door cd C:\Windows\System32\Inetsrv\ te typen in de command line.
  3. In de Inetsrv map, dien je het volgende commando uit te voeren voor elke website op het IP-adres die het certificaat gaat gebruiken: appcmd set site /site.name:"<IISSiteName>" /+bindings.[protocol='https',bindingInformation='*:443:<hostHeaderValue>']
  4. Vervang <IISSiteName> door de naam van de website en <hostHeaderValue> met de host header van die website (site1.uwdomein.nl)

    IIS - Instellen Host Headers
  5. Test elke website in een browser. Het zou de juiste pagina moeten tonen en het slotje zonder enige foutmelding. Als de webpagina van de eerste website wordt getoond, dan zijn de SSL Host Headers niet goed ingesteld.

Kom je er niet uit? Neem dan contact met ons op, we helpen je graag.

point up