Tipp & Trick

Ablaufende TLS-Zertifikate mit PowerShell überwachen

AdministratorMittel

Zentral prüfen, welche TLS-Zertifikate in den nächsten 30 Tagen ablaufen – über HTTPS-Endpunkte oder Zertifikatsspeicher.

Problemstellung

Sie müssen sicherstellen, dass keine TLS-Zertifikate unbemerkt ablaufen. Manuelle Kontrollen sind aufwändig und fehleranfällig – besonders bei vielen Servern und Diensten.

Lösung

Skript: Prüft eine Liste von HTTPS-Endpunkten auf Ablaufdatum.
powershell
$Endpoints = @('https://inderwildi.org','https://portal.example.com')
$Warn = (Get-Date).AddDays(30)
foreach ($url in $Endpoints) {
  try {
    $req = [Net.HttpWebRequest]::Create($url)
    $req.AllowAutoRedirect = $false
    $req.GetResponse().Close()
    $cert = $req.ServicePoint.Certificate
    $exp  = [datetime]::Parse($cert.GetExpirationDateString())
    if ($exp -lt $Warn) {
      Write-Warning "$url laeuft ab am $exp"
    } else {
      Write-Host "$url ok bis $exp"
    }
  } catch { Write-Warning "$url : $_" }
}
Sprachepowershell
PowerShell-Version7.x empfohlen
BetriebssystemeWindows Server, Windows 11, Linux (PowerShell 7)
VoraussetzungenNetzwerkzugriff auf die Endpunkte
Passende Dienstleistungpki
AutorHubert Inderwildi