Konfigurace HSTS a automatický redirect na HTTPS v IIS
HTTP Strict Transport Security (HSTS) je vlastnost webové stránky sdělit prohlížeči, že má se serverem komunikovat pouze přes zabezpečený protokol HTTPS a nikdy pomocí nezabezpečeného HTTP. Tímto nastavením je řešena zejména situace, kdy je uživatel přesměrováván z protokolu HTTP na zabezpečený HTTPS a právě v tomto okamžiku může být útočníkem přesměrován na stránku s podvrženýnm obsahem. HSTS je realizována HTTP záhlavím, které prohlížeči říká, že má používat pouze HTTPS a jak dlouho. Společně s HSTS je tedy nutné nastavit také přesměrování HTTP požadavku na HTTPS.
Konfiguraci je možné provést úpravou souboru web.config. Na IIS v. 7+ je nutné mít nainstalovaný modul URL Rewrite a do souboru web.config dopsat příslušnou část níže uvedené konfigurace. Tato konfigurace zajistí jak odesílání potřebných HTTP záhlaví, tak přesměrování HTTP požadavků na HTTPS.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}"
redirectType="Permanent" />
</rule>
</rules>
<outboundRules>
<rule name="Add Strict-Transport-Security when HTTPS" enabled="true">
<match serverVariable="RESPONSE_Strict_Transport_Security"
pattern=".*" />
<conditions>
<add input="{HTTPS}" pattern="on" ignoreCase="true" />
</conditions>
<action type="Rewrite" value="max-age=63072000; includeSubDomains; preload" />
</rule>
</outboundRules>
</rewrite>
</system.webServer>
</configuration>
