IIS 7- SSL i Host Header

Co jeśli na jednym IP i porcie wystawiamy kilka site’ów i dodatkowo chcemy użyć jednego certyfikatu?
Załóżmy, że mamy dwa site’y: site1.domena.com i site2.domena.com
Certyfikat wystawiony dla site1.domena.com. Dla site1, SSL działa bez zastrzeżeń. A co jeśli będziemy chcieli przypisać ten certyfikat do site2.domena.com?
Najpierw krótko o tym co się dzieję z żadaniem o taka stronę:
– w żądaniu od klienta wysyłany jest m.in. zaszyfrowany Host Header, który jest częścią powiązania (IP:PORT:HOSTHEADER).
– IIS potrzebuje Host Header żeby wybrać właściwy certyfikat, potrzebny do odszyfrowania danych. Bez nagłówka hosta IIS nie wie jakiej strony żąda klient. A bez certyfikatu, IIS nie może odszyfrować danych.
I wszystko się zapętla. Co więc dalej robi IIS? Ignoruje nagłówek hosta a certyfikat wiąże tylko z adresem IP i portem i ostrzega o takim przypisaniu.
I tutaj rozwiązaniem jest użycie certyfikatu Wildcard albo SAN (Subject Alternative Name).

Jeśli chcemy ustawić nagłówek z poziomu GUI musimy w polu ‘friendly name’ naszego certyfikatu, jako pierwszy znak wprowadzić gwiazdkę *.

Drugim sposobem jest użycie narzędzia appcmd, o czym poniżej:

Dodajemy powiązanie strony:

a następnie przy pomocy appcmd (pamiętając by cmd uruchomić z prawami administratora) wydajemy polecenie:

appcmd set site /site.name:sitename /bindings.[protocol= ‘https’,bindingInformation=’*:443:’].bindingInformation:*:443:hostheader

gdzie sitename to nazwa strony, dla której przypisujemy nagłówek a hostheader to oczywiście nazwa nagłówka.
Żeby przypisać hostheader dla konkretnego adresu IP, należy zastąpić * odpowiednim IP.