Ablaufende Zertifikate auf Windows-Servern finden
Ein abgelaufenes Zertifikat auf einem einzelnen Server legt meist genau den Dienst lahm, an dem gerade alle hängen: das RD-Gateway, die Intranetseite, LDAPS für die Firewall oder den RADIUS-Server fürs WLAN. Windows warnt vorher nicht. Mit ein paar Zeilen PowerShell sehen Sie, was bald abläuft und welcher Dienst betroffen ist.
Wo liegen die Zertifikate der Dienste?
Serverdienste verwenden fast immer den Computer-Speicher: in PowerShell Cert:\LocalMachine\My, in der Konsole certlm.msc unter „Eigene Zertifikate“. Zwei Ausnahmen:
- Das selbstsignierte RDP-Zertifikat liegt in
Cert:\LocalMachine\Remote Desktop. - Domänencontroller können für LDAPS zusätzlich den Speicher des NTDS-Dienstes nutzen (siehe LDAPS-Zertifikat prüfen).
Ablaufende Zertifikate auf einem Server
Alle Zertifikate, die in den nächsten 30 Tagen ablaufen oder schon abgelaufen sind:
$tage = 30
Get-ChildItem Cert:\LocalMachine\My |
Where-Object { $_.NotAfter -lt (Get-Date).AddDays($tage) } |
Sort-Object NotAfter |
Select-Object NotAfter, Subject, Issuer, ThumbprintDie Liste enthält oft Altlasten: Das Zertifikat wurde längst erneuert, das alte liegt nur noch im Speicher. Aussagekräftiger ist es, je Inhaber nur das neueste Zertifikat zu betrachten. Taucht es dann noch auf, fehlt der Nachfolger wirklich:
Get-ChildItem Cert:\LocalMachine\My |
Group-Object Subject |
ForEach-Object { $_.Group | Sort-Object NotAfter -Descending | Select-Object -First 1 } |
Where-Object { $_.NotAfter -lt (Get-Date).AddDays(30) } |
Select-Object NotAfter, Subject, ThumbprintMehrere Server auf einmal
Mit PowerShell-Remoting (auf Windows Server standardmäßig aktiv) fragen Sie beliebig viele Server in einem Rutsch ab:
$server = 'srv-web01', 'srv-rds01', 'dc01'
Invoke-Command -ComputerName $server -ScriptBlock {
Get-ChildItem Cert:\LocalMachine\My |
Where-Object { $_.NotAfter -lt (Get-Date).AddDays(30) } |
Select-Object NotAfter, Subject, Thumbprint
} | Sort-Object NotAfter | Format-Table PSComputerName, NotAfter, Subject -AutoSizeAlle Server der Domäne liefert (Get-ADComputer -Filter 'OperatingSystem -like "*Server*"').DNSHostName (Modul ActiveDirectory aus den RSAT). Nicht erreichbare Server meldet Invoke-Command als Fehler, der Rest läuft weiter.
Welcher Dienst nutzt das Zertifikat?
Ein Zertifikat im Speicher sagt noch nicht, ob es gebraucht wird. Vergleichen Sie den Fingerabdruck (Thumbprint) mit den Bindungen der Dienste:
| Dienst | So finden Sie das verwendete Zertifikat |
|---|---|
| IIS | netsh http show sslcert (Feld „Zertifikathash“) oder IIS-Manager → Website → Bindungen |
| RDP | Get-CimInstance -Namespace root\cimv2\TerminalServices -ClassName Win32_TSGeneralSetting -Filter "TerminalName='RDP-tcp'" | Select-Object SSLCertificateSHA1Hash – Details im RDP-Ratgeber |
| RDS-Rollen (Gateway, Web Access, Broker) | Get-RDCertificate auf dem Verbindungsbroker |
| WinRM über HTTPS | winrm enumerate winrm/config/listener (Wert „CertificateThumbprint“) |
| Exchange | Get-ExchangeCertificate | Format-List Thumbprint, Services, NotAfter |
| NPS / RADIUS (WLAN, VPN) | Netzwerkrichtlinienserver → Netzwerkrichtlinien → Richtlinie → Einschränkungen → Authentifizierungsmethoden → PEAP bzw. EAP bearbeiten |
| SQL Server | SQL Server-Konfigurations-Manager → Netzwerkkonfiguration → Protokolle für die Instanz → Eigenschaften → Zertifikat |
| LDAPS (Domänencontroller) | Siehe LDAPS-Zertifikat auf Domänencontrollern |
Erneuern: automatisch oder von Hand
Zertifikate aus der eigenen Enterprise-CA erneuert Windows per Autoenrollment selbst – vorausgesetzt, Gruppenrichtlinie und Vorlagenberechtigungen stimmen. Klappt das nicht, hilft die Checkliste zur Fehlersuche.
Wichtig: Nicht jeder Dienst übernimmt das neue Zertifikat selbst.
- Übernehmen es automatisch: RDP, wenn die Vorlage per Gruppenrichtlinie vorgegeben ist, und LDAPS auf Domänencontrollern.
- IIS ab Version 8.5 nur mit aktivierter Option „Automatische erneute Bindung des erneuerten Zertifikats“ (IIS-Manager → Serverzertifikate).
- Manuell neu zuweisen: NPS, SQL Server, WinRM-Listener und Exchange-Dienste.
- Gekaufte öffentliche Zertifikate müssen Sie ohnehin von Hand erneuern und einspielen.
Dauerhaft im Blick behalten
Die Befehle oben sind eine Momentaufnahme. Der kostenlose ADCS Health Check prüft neben den CA-Zertifikaten und Sperrlisten auch den Computer-Speicher des Rechners, auf dem er läuft, und meldet Zertifikate, die bald ablaufen und noch keinen Nachfolger haben.
Weitere Ratgeber
RDP-Zertifikat prüfen, tauschen und aus der eigenen CA beziehen
Schluss mit der Warnung, dass die Identität des Remotecomputers nicht überprüft werden kann: RDP-Zertifikate per Gruppenrichtlinie aus der eigenen CA verteilen.
LDAPS-Zertifikat auf Domänencontrollern prüfen und erneuern
Welches Zertifikat nutzt der Domänencontroller für LDAPS, wann läuft es ab und wie tauschen Sie es ohne Neustart? Mit PowerShell-Test für Port 636.
Autoenrollment erneuert keine Zertifikate – Checkliste
Gruppenrichtlinie, Vorlagenberechtigungen, Erreichbarkeit der CA, Ereignisprotokoll: Schritt für Schritt herausfinden, warum Zertifikate nicht automatisch erneuert werden.
Sperrliste abgelaufen: Notfallplan für die Microsoft-PKI
WLAN, VPN oder Anmeldung fallen aus, weil eine Sperrliste abgelaufen ist? So veröffentlichen Sie eine neue CRL – auch von der Offline-Root – und verhindern den nächsten Ausfall.