IIS-SSL-Sicherheit erhöhen

Nachdem ich viele Eventlog-Fehler-Einträge mit SChannel auf meinen Webservern (Windows 2012) gefunden habe, habe ich mich mal auf die Suche nach einer Verbesserung der SSL-Konfiguration gemacht.

Der SSL-Check hat auch nicht so gute Werte geliefert:

Über den Artikel „Setup your IIS for SSL Perfect Forward Secrecy and TLS 1.2“ habe ich es dann geschafft:

Jetzt schaut der SSL-Test so aus:

Das gibt mir ein deutlich sichereres Gefühl.


###Update 1

Auf einem der Webserver gab es, ohne dass ich ein Schema erkennen konnte, bei einigen Nicht-SSL-Websites „Service unavailable 503“-Fehlermeldungen. Andere Nicht-SSL- und andere SSL-Websites auf demselben Server liefen perfekt.

Im Ereignisprotokoll standen Dinge wie

Fehler beim Laden der Modul-DLL C:\windows\System32\inetsrv\HstsIisModule.dll. Die Daten enthalten Fehlerinformationen.

Laut diesem Bug-Report liegt es an Websites, die im 32-Bit-Modus laufen.

Ich habe dann schweren Herzens auf dem Server wieder das Modul deinstalliert und den Server dann komplett neu gestartet.

Ggf. müsst Ihr auch noch die „hsts“-Einträge in der applicationHost.config-Datei entfernen.


###Update 2

Ich habe einen Workaround für das 32-Bit-Issue gefunden:

Das Attribut "preCondition=„bitness64"“ in beiden Modul-Einträgen in der Datei applicationHost.config ergänzen:

  • <add name="HstsIisModule" preCondition="bitness64" /> in der <modules>-Sektion.
  • <add name="HstsIisModule" image="%windir%\System32\inetsrv\HstsIisModule.dll" preCondition="bitness64"/> in der <globalModues>-Sektion.

Das schaltet dann das Modul für alle 32-Bit-AppPools aus und nur für 64-Bit-AppPools an. Logischerweise sind somit nur 64-Bit-SSL-Websites geschützt.

Kleiner Tipp zum Bearbeiten der „applicationHost.config“-Datei:

  1. Sicherheitskopie der Datei „applicationHost.config“ machen!
  2. Datei „applicationHost.config“ aus „C:\Windows\System32\inetsrv\config“ kopieren.
  3. Datei an einen anderen Speicherort speichern (z. B. auf dem Desktop).
  4. Datei dort mit einem Texteditor (z. B. Notepad++) bearbeiten.
  5. Änderungen speichern.
  6. Datei wieder vom anderen Speicherort (z. B. dem Desktop) zurück kopieren nach „C:\Windows\System32\inetsrv\config“.

Der Grund, warum ich das so umständlich mache:

Dateien in „C:\Windows\System32\inetsrv\config“ (vermutlich dem ganzen Windows-Ordner) sind irgendwie geschützt und ich kann selbst als Administrator die Dateien manchmal nicht bearbeiten. Durch das raus- und reinkopieren umgehe ich das.