TLS und Zertifikate für IIS konfigurieren
Schritt-für-Schritt-Anleitung: TLS-Protokolle, Cipher Suites, HTTPS-Redirect und Zertifikatsbindung in IIS — mit IIS Crypto Tool und PowerShell.
TLS und Zertifikate in IIS
TLS-Konfiguration ist die Grundlage jeder sicheren Website. Mit 4 von 166 Punkten im Wolf-Agents Web Security Check prüft der Scanner TLS-Version, Cipher Suites und Zertifikatgueltigkeit. In IIS erfolgt die TLS-Konfiguration über Windows Schannel — nicht in der web.config.
Das IIS Crypto Tool (von Nartac Software) ist die empfohlene Methode: Ein Klick auf "Best Practices" deaktiviert unsichere Protokolle und Cipher Suites. Alternativ konfigurieren Sie alles per PowerShell und Registry-Eintraegen — ideal für Windows Server Core und automatisierte Deployments.
Wichtig: TLS-Änderungen erfordern immer einen vollständigen Server-Neustart. Ein iisreset reicht nicht aus, da Schannel auf Betriebssystemebene arbeitet. Planen Sie ein Wartungsfenster ein.
TLS-Protokolle mit IIS Crypto oder PowerShell
Deaktivieren Sie TLS 1.0 und 1.1 — nur TLS 1.2 und 1.3 sind sicher. IIS Crypto ist die einfachste Methode mit GUI. Für Server Core oder automatisierte Deployments nutzen Sie PowerShell. Das Script deaktiviert beide Client- und Server-Seite der Protokolle.
# IIS Crypto (Nartac Software) — empfohlene Methode
# Download: https://www.nartac.com/Products/IISCrypto
#
# 1. IIS Crypto starten
# 2. "Best Practices" Button klicken
# 3. "Apply" → Server-Neustart
#
# Best Practices deaktiviert:
# - SSL 2.0, SSL 3.0, TLS 1.0, TLS 1.1
# - RC4, DES, 3DES, MD5, NULL Ciphers
#
# Kommandozeilen-Version (für Server Core):
IISCryptoCli.exe /template best # PowerShell — TLS-Protokolle konfigurieren (Registry)
# TLS 1.0 und 1.1 deaktivieren
foreach ($version in @('TLS 1.0', 'TLS 1.1')) {
$serverPath = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\$version\Server"
$clientPath = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\$version\Client"
foreach ($p in @($serverPath, $clientPath)) {
New-Item -Path $p -Force | Out-Null
Set-ItemProperty -Path $p \
-Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path $p \
-Name "DisabledByDefault" -Value 1 -Type DWord
}
}
# TLS 1.2 und 1.3 explizit aktivieren
foreach ($version in @('TLS 1.2', 'TLS 1.3')) {
$path = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\$version\Server"
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path \
-Name "Enabled" -Value 1 -Type DWord
Set-ItemProperty -Path $path \
-Name "DisabledByDefault" -Value 0 -Type DWord
}
Write-Host "TLS konfiguriert. Server-Neustart erforderlich!" Cipher Suites konfigurieren
Erlauben Sie nur starke Cipher Suites mit Forward Secrecy (ECDHE) und authentifizierter Verschlüsselung (GCM). TLS 1.3 verwendet automatisch sichere Suites — die Konfiguration betrifft hauptsächlich TLS 1.2.
# PowerShell — Cipher Suites (Windows Server 2019+)
$suites = @(
'TLS_AES_256_GCM_SHA384', # TLS 1.3
'TLS_AES_128_GCM_SHA256', # TLS 1.3
'TLS_CHACHA20_POLY1305_SHA256', # TLS 1.3
'TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384',
'TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256',
'TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384',
'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256'
)
# Cipher Suite Order per GPO-Registry setzen
$joined = $suites -join ','
$regPath = 'HKLM:\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002'
New-Item -Path $regPath -Force | Out-Null
Set-ItemProperty -Path $regPath \
-Name "Functions" -Value $joined
Write-Host "Cipher Suites konfiguriert. Server-Neustart erforderlich!" HTTPS erzwingen per URL Rewrite
Leiten Sie alle HTTP-Anfragen per 301-Redirect auf HTTPS um. Dies verhindert, dass Benutzer versehentlich unverschlüsselt zugreifen. In Kombination mit HSTS (Strict-Transport-Security) wird der Browser nach dem ersten Besuch ausschließlich HTTPS verwenden.
<!-- web.config — HTTPS erzwingen per URL Rewrite -->
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS"
stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}"
pattern="off" />
</conditions>
<action type="Redirect"
url="https://{HTTP_HOST}/{R:1}"
redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration> TLS-Konfiguration verifizieren
Prüfen Sie nach dem Server-Neustart die aktive TLS-Konfiguration. Der Wolf-Agents Web Security Check testet TLS-Version und Cipher Suites automatisch. Für detaillierte Ergebnisse nutzen Sie nmap oder den Qualys SSL Labs Test.
# PowerShell — TLS-Konfiguration verifizieren
# TLS-Version prüfen
curl -sI https://ihre-domain.de -v 2>&1 |
Select-String "SSL connection|TLSv"
# Detaillierter Scan mit nmap
nmap --script ssl-enum-ciphers -p 443 ihre-domain.de
# Erwartete Ergebnisse:
# TLSv1.2 und TLSv1.3 verfügbar
# Nur ECDHE + AES-GCM Cipher Suites
# Kein TLSv1.0, TLSv1.1, RC4, DES
# Zertifikat prüfen
$cert = [Net.ServicePointManager]::SecurityProtocol
Write-Host "Aktive Protokolle: $cert" Häufige Fehler
Kein Server-Neustart nach Registry-Änderung
Registry-Änderungen an Schannel werden erst nach einem vollständigen Server-Neustart wirksam. Ein IIS-Reset (iisreset) reicht nicht aus — Schannel arbeitet auf Betriebssystemebene, nicht auf IIS-Ebene.
TLS 1.3 nicht verfügbar
TLS 1.3 ist erst ab Windows Server 2022 verfügbar. Windows Server 2019 unterstützt nur TLS 1.2 — stellen Sie sicher, dass TLS 1.2 mit starken Cipher Suites konfiguriert ist. Ein Upgrade auf Server 2022 ist empfehlenswert.
Alte Clients können nicht mehr verbinden
Das Deaktivieren von TLS 1.0/1.1 schliesst alte Clients aus (z.B. IE 10, Android 4.x, Java 7). Prüfen Sie Ihre Server-Logs auf Zugriffe mit alten TLS-Versionen, bevor Sie die Protokolle deaktivieren.
Zertifikat nicht an alle Bindings gebunden
Wenn Ihre Website über mehrere Hostnamen oder IP-Adressen erreichbar ist, muss das Zertifikat an jedes Binding gebunden sein. Fehlende Bindings führen zu Zertifikatsfehlern im Browser. Nutzen Sie SNI für mehrere Domains.
Compliance-Relevanz
TLS-Verschlüsselung ist eine Grundanforderung von NIS2, PCI DSS 4.0 und der DSGVO. Ohne TLS ist keine sichere Datenübertragung möglich. PCI DSS 4.0 verlangt mindestens TLS 1.2 für die Übertragung von Karteninhaberdaten. Der Wolf-Agents Web Security Check bewertet TLS mit bis zu 4 Punkten — inklusive Versionsprüfung und Zertifikatsdetails.
Wie steht Ihre Domain bei TLS & Zertifikate?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.