Pokud jste se někdy setkali s potřebou zabezpečit přístup k web serveru pomocí SSL, je velice pravděpodobné, že jste narazili na omezení v IIS, a to, že na jedné IP adrese nelze provozovat více SSL web serverů (http://support.microsoft.com/?id=187504). Na rozdíl od klasického HTTP, kde můžete na jednu IP adresu pomocí host headers "pověsit" kolik web serverů chcete. Znamenalo to tedy nakupovat další IP adresy a to je samozřejmě při provozu několika desítek webů na jednom stroji věc nepříjemná a někdy vlastně i neřešitelná. Nicméně nyní, s příchodem Service Pack 1 na Windows Server 2003 dochází konečně ke změně. Pojďme se tedy podívat, jak na to.
Několik základních upozornění na začátek:
- SSL Host Headers nelze konfigurovat pomocí IIS snap-in konzole
- Pro každý web server, na kterém chcete provozovat SSL host header musíte nejprve získat "wildcart" certifikát a do každé web site jej naimportovat
- Zajistit "secure bindings" pro každou web site, která bude používat "wildcart" certifikát, aby nedošlo k jeho bezpečnostnímu zneužití
Získání a instalace wilcart server certifikátu (IIS 6.0)
Poznámka:
a) ne všechny certifikační autority (CA) podporují vydávání tohoto typu certifikátu!
b) pro všechny následující kroky musíte být členem skupiny Administrators
Procedura
- V IIS snap-in konzoli rozbalte lokální počítač a následně i složku "Web Sites"
- Klepněte pravým tlačítkem na web site, pro kterou chcete získat certifikát, a vyberte "Properties"
- Na záložce "Directory Security", v části "Secure communication", klepněte na "Server Certificate"
- V průvodci, který se předchozími kroky spustí, vyberte volbu "Create a new certificate"
- Vyplňte hodnoty dle uvážení, pouze v části "Common Name" použijte následující formát:
*.<sitename> (tedy například pro moji doménu by to bylo *.pavlis.net)
- Dokončete průvodce a výsledný soubor doručte na certifikační autoritu (CA)
- Po získání certifikátu z certifikační autority (CA) dokončete instalaci certifikátu opětovným spuštěním průvodce a spárováním certifikátu s privátním klíčem
- Tento certifikát případně naimportujte do všech dalších web site, které by také využívaly SSL host header
Konfigurace Server Bindings pro SSL Host Headers (IIS 6.0)
Poznámka:
a) SSL bindings je potřeba nakonfigurovat pro všechny SSL-zapnuté web site, pro zabezpečení a ochraně proti neautorizovanému použití certifikátu
Procedura
- Ve startovním menu vyberte položku "Run", zde napište příkaz CMD a potvrďte OK
- V příkazové řádce použijte následující syntaxi:
cscript.exe adsutil.vbs set /w3svc/<site identifier>/SecureBindings ":443:<host header>"
- kde host header je host header dané web site, např. www.pavlis.net
Zajištění, že obsah bude poskytován pouze skrze HTTPS (IIS 6.0)
Procedura
- V příkazové řádce použijte následující syntaxi:
cscript.exe adsutil.vbs set /w3svc/<site identifier>/AccessSSL TRUE
- kde <site identifier> je číslo identifikující web site (možné zjistit přes IIS snap-in)
Přesměrování HTTP požadavků na HTTPS (IIS 6.0)
Procedura
- vytvořte novou ASP web stránku, pojmenujte ji např. RedirectToSSL.asp a uložte ji do kořenového adresáře vaší web site
- obsah tohoto souboru vložte do právě vytvořeného souboru:
<%@Language=VBScript %>
<%
strQueryString = Request.QueryString
strAddress = Right(strQueryString, Len(strQueryString) - Instr(1,strQueryString, ";"))
strSecure = Replace(strAddress, "http:", "https:", 1, 1)
Response.Redirect strSecure
%>
- V IIS snap-inu klepněte pravým tlačítkem na vámi vybranou web site a zvolte properties
- Na záložce "Directory Security" v sekci "Secure communications" vyberte "Edit"
- Vyberte "Require secure channel (SSL)" a klepněte na OK
- Na záložce "Custom Errors" vyberte error zprávu 403;4 a klepněte na "Edit"
- Vyberte volbu URL a pomocí tlačítka "Browse" najděte soubor RedirectToSSL.asp a klepněte dvakrát na "OK" pro návrat do základního zobrazení IIS manageru
- Nalezněte soubor RedirectToSSL.asp a přes vlastnosti na něm vypněte SSL
Nyní tedy všichni, kdo přistoupí k těmto stránkám budou automaticky přesměrováni na SSL komunikaci.
Závěr
Novinka v podobě SSL Host Headers je vítanou změnou v IIS hlavně pro ty, kteří potřebují na jedné IP adrese provozovat větší množství web serverů, které poskytují obsah přes SSL.