LDAPS-Zertifikat auf Domänencontrollern prüfen und erneuern

Firewalls, VPN-Gateways, NAS-Systeme, Linux-Server und viele Java-Anwendungen fragen das Active Directory über LDAPS (Port 636) ab. Läuft das Zertifikat auf einem Domänencontroller ab, scheitern diese Anmeldungen – oft ohne klare Fehlermeldung, und nur auf dem einen DC, den das Gerät gerade erwischt.

Was ein DC für LDAPS braucht

  • Ein Zertifikat mit dem Verwendungszweck Serverauthentifizierung (OID 1.3.6.1.5.5.7.3.1)
  • den vollständigen Namen des DCs im Antragsteller oder im alternativen Antragstellernamen (SAN)
  • einen privaten Schlüssel und einen Aussteller, dem die Clients vertrauen
  • abgelegt in „Eigene Zertifikate“ des Computers oder im Speicher des Dienstes NTDS

Mit einer Enterprise-CA holen sich Domänencontroller ein passendes Zertifikat automatisch, typischerweise aus der Vorlage „Kerberos-Authentifizierung“ oder „Domänencontrollerauthentifizierung“. LDAPS funktioniert dann ohne weiteres Zutun – bis die Erneuerung einmal nicht klappt.

Welches Zertifikat liefert der DC tatsächlich aus?

Der verlässlichste Test ist eine echte Verbindung auf Port 636. Diese Funktion zeigt Inhaber und Ablaufdatum – auch wenn das Zertifikat ungültig ist:

function Test-Ldaps([string]$Server) {
  $tcp = New-Object Net.Sockets.TcpClient($Server, 636)
  try {
    $ssl = New-Object Net.Security.SslStream($tcp.GetStream(), $false, { $true })
    $ssl.AuthenticateAsClient($Server)
    $c = New-Object Security.Cryptography.X509Certificates.X509Certificate2 $ssl.RemoteCertificate
    [pscustomobject]@{
      Server     = $Server
      Subject    = $c.Subject
      NotAfter   = $c.NotAfter
      DaysLeft   = ($c.NotAfter - (Get-Date)).Days
      Thumbprint = $c.Thumbprint
    }
  }
  finally { $tcp.Dispose() }
}

# Alle Domänencontroller prüfen (Modul ActiveDirectory)
(Get-ADDomainController -Filter *).HostName | ForEach-Object { Test-Ldaps $_ }

Unter Linux geht dasselbe mit openssl s_client -connect dc01.firma.local:636 -showcerts. Grafisch hilft ldp.exe: Verbindung → Verbinden → Port 636, „SSL“ ankreuzen.

Mehrere passende Zertifikate: welches gewinnt?

Liegen mehrere geeignete Zertifikate in „Eigene Zertifikate“, wählt Windows eines davon aus – nicht immer das, das Sie erwarten. Typisch nach einer Erneuerung oder wenn zusätzlich ein Zertifikat für andere Zwecke auf dem DC liegt. Zwei Wege, das zu vermeiden:

  • Abgelaufene und ersetzte Zertifikate nach der Erneuerung aus dem Speicher entfernen.
  • Das gewünschte Zertifikat in den Speicher des Dienstes NTDS importieren (mmc → Snap-In „Zertifikate“ → Dienstkonto → Active Directory-Domänendienste → Eigene Zertifikate). Zertifikate dort haben für LDAPS Vorrang.

Erneuern ohne Neustart

Ein per Autoenrollment erneuertes Zertifikat übernimmt der DC für neue Verbindungen in der Regel von selbst. Wollen Sie den Wechsel sofort erzwingen, etwa nach einem manuellen Tausch, schreiben Sie das Attribut renewServerCertificate in den RootDSE des Domänencontrollers. Das ist kein PowerShell-Befehl, sondern ein LDAP-Vorgang: Sie legen eine LDIF-Datei an und spielen sie mit ldifde ein. Auf dem betroffenen DC in einer PowerShell als Administrator:

@'
dn:
changetype: modify
add: renewServerCertificate
renewServerCertificate: 1
-

'@ | Set-Content -Path "$env:TEMP\renew.ldf" -Encoding ASCII

ldifde -i -f "$env:TEMP\renew.ldf"

ldifde meldet am Ende, dass ein Eintrag geändert wurde. Grafisch geht es mit ldp.exe: mit dem DC verbinden und binden, dann Durchsuchen → Ändern, „Definierter Name“ leer lassen, Attribut renewServerCertificate, Wert 1, Vorgang „Hinzufügen“ → Eingabe → Ausführen.

Prüfen Sie danach mit Test-Ldaps, ob der neue Fingerabdruck ausgeliefert wird.

Geräte, die das Zertifikat selbst gespeichert haben

Die meisten Clients vertrauen der Root-CA und merken vom Zertifikatswechsel nichts. Einige Appliances speichern aber das Serverzertifikat des DCs selbst oder nur die ausstellende Zwischen-CA. Solche Geräte müssen Sie nach jeder Erneuerung bzw. nach einer Erneuerung der CA neu versorgen. Am besten hinterlegen Sie dort, wo möglich, die Root-CA.

Warum erneuert sich das Zertifikat nicht?

Meist liegt es an Gruppenrichtlinie, Vorlagenberechtigungen oder der Erreichbarkeit der CA – die Checkliste zu Autoenrollment geht die Ursachen der Reihe nach durch. Ist die ausstellende CA erreichbar, aber ihre Sperrliste abgelaufen, lehnen Clients auch ein frisches LDAPS-Zertifikat ab: siehe Sperrliste abgelaufen.

Weitere Ratgeber