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, Thumbprint

Die 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, Thumbprint

Mehrere 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 -AutoSize

Alle 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:

DienstSo finden Sie das verwendete Zertifikat
IISnetsh http show sslcert (Feld „Zertifikathash“) oder IIS-Manager → Website → Bindungen
RDPGet-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 HTTPSwinrm enumerate winrm/config/listener (Wert „CertificateThumbprint“)
ExchangeGet-ExchangeCertificate | Format-List Thumbprint, Services, NotAfter
NPS / RADIUS (WLAN, VPN)Netzwerkrichtlinienserver → Netzwerkrichtlinien → Richtlinie → Einschränkungen → Authentifizierungsmethoden → PEAP bzw. EAP bearbeiten
SQL ServerSQL 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