Jak s IIS dosáhnout známky A/A+ v SSLlabs

22. 2. 2016 | Jindřich Zechmeister

Pokračujeme v cyklu návodů na bezpečné nastavení webových serverů a podíváme se na současný webserver Microsoft IIS 8.5 z Windows Servers 2012. Výchozí nastavení lze v mnohém zlepšit, proto čtěte dále, jak správně nastavit IIS ve Windows serveru a dosáhnout hodnocení A/A+ v testu SSLlabs.

Výchozí nastavení a kompatibilita

Ve výchozím stavu nastavení SSL v IIS dosáhnete známky B. To není špatný výsledek, ale určitě chcete dosáhnout lepšího hodnocení. V tomto výchozím nastavení je vhodné zakázat použití RC4 šifry; přijdete tím o minimální počet návštěvníků s Internet Explorerem 6, ale šifra není považována za bezpečnou a kompromis není na místě.

Po zakázání RC4 šifer se hodnocení zlepší na A. Můžete server považovat za bezpečný. Stále však můžeme hodnocení a bezpečnost zlepšit, stejně jako kompatibilitu.

V testu SSLlabs si můžete všimnout simulace spojení serveru s různými klienty. V testu chybí "IE 8 / XP", což znamená, že Internet Explorer na Windows XP se k webu nedokáže připojit. Tento problém je způsoben SNI a vyřešíme ho velice jednoduše - nastavením SSL certifikátu na serveru i jako výchozího (viz další odstavec). Pak se na server připojí i zákazníci s IE 8 na Windows XP.

Nastavení SSL webu jako výchozí

Nastavení najdete v Bindings - odškrtněte použití SNI, centrálního úložiště a nezadávejte žádný hostname. Vyberte z vysouvací nabídky jeden výchozí certifikát a dialog potvrďte. V pravém horním rohu IIS okna zmizí varování upozorňující na absenci výchozí (default) SSL website. Problém je vyřešen.

Dosažení hodnocení A

Pro zvýšení ratingu z B na A stačí v utilitě IIS Crypto použít nastavení FIPS 140-2 a odškrtnout (zakázat) 3 šifry (viz obrázek):

TLS_DHE_RSA_WITH_AES_256_GCM_SHA384

TLS_DHE_RSA_WITH_AES_128_GCM_SHA256

TLS_RSA_WITH_RC4_128_SHA

Klikněte na Apply, restartuje server a zopakujte test SSLlabs. Výsledkem testu bude krásné A.

Dosažení hodnocení A+

V hodnocení SSLlabs můžete dosáhnout ještě lepšího hodnocení A+. Server musí mít nastaveno HTTP Strict Transport Security a používat pouze TLS 1.2.

Upozornění: Pokud bude server používat pouze nejnovější TLS protokol verze 1.2, nedostanou se na něj starší prohlížeče. Konkrétně to znamená, že web nenavštíví mobilní klienti s Androidem verze nižší než 4.4. Na počítači se na web nedostane Internet Explorer verze nižší než 11, Firefox verze < 27 a Chrome verze < 30. Důkladně tedy zvažte možné negativní dopady tohoto kroku.

Nastavení HTTP Strict Transport Security najdete v IIS v detailu website v nabídce HTTP Response Headers (jedna z ikon v seznamu). Nabídku otevřete a v pravém horním rohu najdete možnost  přidat novou (Add).

Do položky Name zadejte strict-transport-security a do hodnoty age zadejte max-age=31536000 (což znamená 1 rok). Pro podporu i na subdoménách můžete zadat max-age=31536000; includeSubdomains.

V programu IIS Crypto odškrtněte možnosti TLS 1.0 a 1.1; jediným povoleným protokolem zůstane TLS 1.2.

Změny potvrďte (Apply) a proveďte restart serveru. Nyní už bude v SSLlabs svítit nejvyšší hodnocení A+.

To je vše. Nakonec znovu doporučuji podívat se ve výsledku testu SSLlabs na klienty, kteří se na vaši doménu (ne)dostanou. Zejména pro e-shopy může být příliš agresivní nastavení problém.


Ing. Jindřich Zechmeister
Specialista pro bezpečnostní SSL certifikáty
DigiCert TLS/SSL Professional
e-mail: jindrich.zechmeister(at)zoner.cz