Porovnání SSL certifikátů
Přesměrování veškerého provozu z HTTP na HTTPS v IIS7 zajistí, že uživatelé budou mít vždy bezpečný přístup k webu. Existuje mnoho různých způsobů, jak nastavit přesměrování IIS7 z HTTP na HTTPS, a některé jsou lepší než jiné. Ideální přesměrování z HTTP na HTTPS by dělalo následující:
- Šetrně přesměrovat uživatele na HTTPS, aby uživatelé nemuseli v URL zadávat „https“
- Přesměrovat uživatele na konkrétní stránku, na kterou chtěli přejít na HTTP (page.htm)
- Uložit všechny proměnné předané v řetězci dotazu (?page=2)
- Fungovat ve všech prohlížečích
- Přenést PageRank na přesměrovanou stránku pomocí přesměrování 301, čímž se zachová SEO
- Povolit určitým částem webu vynutit SSL, ale povolit HTTP na ostatních částech webu
- Přesměrovat uživatele z mydomain.com na adresu www.mydomain.com
Naneštěstí neexistuje jednoduchý způsob, jak splnit všechny tyto požadavky, a většina metod splňuje jen některé z nich. Nejlepší metoda přesměrování HTTP na HTTPS, kterou jsem viděl, zahrnuje použití ASP.Net pro přesměrování HTTP na HTTPS
Většina lidí však všechny tyto funkce nepotřebuje, proto jsem uvedl dvě nejlepší metody přesměrování HTTP na HTTPS v systému IIS 7. Snadno se nastavují a ve většině situací jsou účinné. Všimněte si, že tyto metody by měly s drobnými úpravami fungovat i v systémech IIS 8 a IIS 10.
Metoda 1 – Použití modulu Microsoft URL Rewrite
Pro tuto metodu přesměrování z HTTP na HTTPS je třeba provést následující kroky;
- Instalace modulu Microsoft URL Rewrite Module
- Instalace certifikátu SSL ve službě IIS 7 a jeho svázání s webovou stránkou
- Ujistěte se, že v části Nastavení SSL NENÍ zaškrtnuto Požadovat SSL pro vašeho webu (zrušte zaškrtnutí políček, která jsou zaškrtnutá na tomto snímku obrazovky)
- Zkopírujte a vložte následující kód mezi značky <rules> a </rules> na vašem webu.config v kořenovém adresáři webu.
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
</rule> - Vyzkoušejte web tak, že přejdete na http://www.yoursite.com a ujistíte se, že přesměruje
Metoda 2 – Nastavení vlastní chybové stránky
Druhou metodou nastavení přesměrování HTTP na HTTPS v systému IIS7 je Vyžadovat SSL na webu nebo jeho části a nastavit vlastní chybovou stránku 403.4. K tomu stačí postupovat podle následujících kroků:
- Nainstalujte certifikát SSL do systému IIS 7 a přiřaďte jej k webu
- V systému IIS klikněte na název webu a přejděte do části Nastavení SSL
- Zaškrtněte políčka Vyžadovat SSL a Vyžadovat 128bitové SSL a klikněte na Použít
- Po provedení tohoto postupu se uživatelům obvykle zobrazí tato chyba:
-
Vytvořte nový textový soubor a vložte do něj následující:
<html>
<head><title>Redirecting...</title></head>
<script language="JavaScript">
function redirectHttpToHttps()
{
var httpURL= window.location.hostname + window.location.pathname + window.location.search;
var httpsURL= "https://" + httpURL;
window.location = httpsURL;
}
redirectHttpToHttps();
</script>
<body>
</body>
</html> - Uložte soubor jako redirectToHttps.htm do adresáře C:\Inetpub
- Zpět v systému IIS klikněte na název webu a dvakrát klikněte na možnost Chybové stránky
- Klikněte na Přidat… a jako stavový kód zadejte 403.4. Vyhledejte právě vytvořený soubor redirectToHttps.htm a klikněte na tlačítko OK
- Zvolte kód chyby a stiskněte tlačítko Upravit nastavení funkce…
- Klikněte na možnost Vlastní chybové stránky a opět vyhledejte soubor redirectToHttps.htm
- Vyzkoušejte stránku tak, že přejdete na http://www.yoursite.com a ujistíte se, že přesměruje
Úskalí použití vlastní chybové stránky pro přesměrování IIS7 z HTTP na HTTPS spočívá v tom, že webový prohlížeč musí mít povolený JavaScript, aby přesměrování fungovalo.
Další metody přesměrování IIS7 z HTTP na HTTPS:
- Přesměrování z Http na Https v ASP.NET
- Podpora Microsoftu – Jak přesměrovat připojení HTTP na HTTPS pro klienty Outlook Web Access a jak přesměrovat výchozí webovou stránku tak, aby ukazovala na virtuální adresář Exchange
- Přesměrování HTTP na HTTPS v IIS 6
- Přepínání mezi HTTP a HTTPS jako velký frajer
Původně publikováno v so 27. února, 2010