Zertifikat für Windows Root CA erneuern

Eine Zerti­fizierungs­­stelle kann keine Zerti­fikate aus­stellen, deren Gültig­keits­dauer über jene des CA-Zertifikats hinausreichen. Daher sollte man dieses recht­zeitig erneuern. Bei dieser Gelegen­heit kann man gleich einige Parameter für das neue Zerti­fikat festlegen. Als Tool für diese Aufgabe kommen certsrv.msc und certutil.exe in Frage.

Wenn man das Ablaufdatum des CA-Zertifikats übersieht und dieses überschreitet, dann kann die Zertifizierungs­stelle kein Zertifikat mehr ausstellen. Dies äußert sich in Fehler­meldungen, die nicht gleich auf die Ursache schließen lassen.

Fordert man in diesem Fall ein Zertifikat über certmgr.msc oder certlm.msc an, dann zeigt der Dialog mit den Vorlagen ein leeres Fenster an. Aktiviert man daraufhin die Option Alle Vorlagen anzeigen, dann sieht man dort folgenden Hinweis:

Ein erforderliches Zertifikat befindet sich nicht im Gültigkeitszeitraum gemessen an der aktuellen Systemzeit oder dem Zeitstempel in der signierten Datei.
Es wurde keine gültige Zertifizierungsstelle gefunden, die für das Ausstellen von Zertifikaten basierend auf dieser Vorlage konfiguriert wurde, oder dieser Vorgang wird von der Zertifizierungsstelle nicht unterstützt oder die Zertifizierungsstelle ist nicht vertrauenswürdig.

Fehlermeldung im Wizard für das Anfordern neuer Zertifikate, wenn das CA-Zertifikat abgelaufen ist.

Auf Englisch lautet der entsprechende Text:

A required certificate is not within its validity period when verifying against the current system clock or the timestamp in the signed file. A valid certification authority (CA) configured to issue certificates based on this template cannot be located, or the CA does not support this operation, or the CA is not trusted.

Nutzt man das Cmdlet Get-Certificate, um ein Zertifikat anzufordern, dann erhält man zusätzlich den Fehlercode 0x800b0101.

Ablaufdatum des CA-Zertifikats anzeigen

Um das Ablaufdatum des aktuellen Zertifikats zu prüfen, startet man das MMC-Snapin Zertifizierungsstelle (certsrv.msc). Dort öffnet man die Eigenschaften aus dem Kontextmenü der CA und erhält unter dem Reiter Allgemein eine Liste aller bisher ausgestellten Zertifizierungs­stellen­zertifikate.

Eigenschaften eines CA-Zertifikats in certsrv.msc anzeigen

Die Übersicht zeigt auch deren Index an und markiert ein Zertifikat gegebenenfalls mit dem Hinweis (abgelaufen). Hier kann man zudem gleich die Details eines Zertifikats öffnen und dessen Ablaufdatum verifizieren.

Die Basisdaten des CA-Zertifikats kann man auch pkiview.msc entnehmen.

Das MMC-Snapin pkiview.msc zeigt neben dem Ablaufdatum des Zertifikats den generellen Health-Status an.

Optionen für neue Zertifikate

Ist es notwendig, ein neues CA-Zertifikat auszustellen, dann muss man dies nicht mit den Standard­werten tun, sondern kann mehrere Parameter vorab anpassen. Dazu erstellt man eine Datei namens CaPolicy.inf und trägt folgende Zeilen ein, um zum Beispiel die Gültigkeit des Zertifikats auf 10 Jahre zu erweitern:

[certsrv_server]
RenewalValidityPeriod=Years
RenewalValidityPeriodUnits=10

Die Konfiguration unterstützt noch eine Reihe weiterer Parameter, eine Übersicht dazu findet sich in Microsofts Dokumentation. Die Datei kopiert man auf dem CA-Server in das Windows-Verzeichnis (%SystemRoot%).

Einträge in die CaPolicy.inf, um die Gültigkeit eines neues CA-Zertifikats auf 10 Jahre festzulegen

CA-Zertifikat erneuern

Für diese Aufgabe öffnet man wieder das Kontextmenü der Zertifizierungsstelle in certsrv.msc und führt dort unter Alle Aufgaben den Befehl Zertifi­zierungs­stellen­zertifikat erneuern ("Renew CA Certificate") aus.

CA-Zertifikat über das MMC-Snapin Zertifizierungsstelle verlängern

Dieser startet einen Wizard, der zuerst darauf hinweist, dass die Zertifikatsdienste vorübergehend beendet werden müssen. Der nächste Dialog stellt den Benutzer vor die Wahl, die Signaturschlüssel beizubehalten oder neue auszustellen.

Als mögliche Gründe für neue Keys nennt Microsoft hier, dass die bisherigen Schlüssel kompromittiert wurden, dass eine bestimmte Software solche erfordert oder dass die Zertifikatsperrliste (CRL) zu groß ist.

Mit neuen Keys würde die Zertifizierungsstelle auch eine neue CRL anlegen, die nur mehr die Seriennummer von Zertifikaten enthält, die seit dem Ausstellen des neuen CA-Zertifikats gesperrt wurden. Microsofts Dokumentation zeigt, wie sich dies auf die Benennung der CLR auswirkt.

Das Beibehalten der Schlüssel vereinfacht den Vorgang, weil alle bisher ausgestellten Zertifikate damit auch in der Zertifikatskette mit dem neuen CA-Zertifikat bleiben. Das Für und Wider neuer Signing Keys beleuchtet dieser Blog-Beitrag von Vadims Podāns.

Alternativ zur GUI von certsrc.msc kann man das Kommandozeilen-Tool certutil.exe verwenden, um das CA-Zertifikat zu erneuern. Dieser Aufruf würde den öffentlichen und privaten Schlüssel weiter­verwenden:

certutil -renewCert ReuseKeys

CA-Zertifikat mit certutil.exe erneuern und dabei die bisherigen Keys weiterverwenden

Verzichtet man auf den Schalter ReuseKeys, dann erstellt das Utility auch gleich noch neue Schlüssel. Mit dem folgenden Eintrag in die oben erwähnte CaPolicy.inf kann man die Key-Länge festlegen, in diesem Beispiel auf 2048 Bit:

RenewalKeyLength=2048

Root-Zertifikat an die Clients verteilen

Wenn man das Zertifikat der Root-CA erneuert hat, dann muss man dieses an die Clients verteilen, damit sie den von der Zertifizierungsstelle ausgestellten Zertifikaten vertrauen. Windows-PCs speichern dieses unter cert:\LocalMachine\Root bzw. unter den vertrauens­würdigen Stamm­zertifikaten eines Benutzers.

Betreibt man eine Enterprise-CA, dann wird das Root-Zertifikat automatisch in der Domäne verteilt. Die Clients erhalten es beim Refresh der Gruppen­richt­linien. Wenn man den Vorgang beschleunigen möchte, dann kann man das mit gpupdate /force tun.

Bei einer Standalone-CA exportiert man das Zertifikat und publiziert es mit diesem Befehl im Active Directory:

certutil -f -dspublish <RootCACertificate-Datei> RootCA

Auf diesem Weg gelangt es auf alle Rechner in der Domäne. Alternativ kann man das Root-Zertifikat auch per Gruppen­richt­linie verteilen, wenn man es zum Beispiel nur in bestimmten OUs bereitstellen möchte.

Wenn man sich nicht sicher ist, mit welchem Typ von CA man es zu tun hat, dann kann man das so herausfinden:

certutil -getreg ca\catype

Zusammenfassung

Das Ablaufen eines CA-Zertifikats setzt eine Zertifizierungs­stelle weitgehend außer Gefecht. Daher sollte man sich rechtzeitig um eine Erneuerung desselben kümmern. In der Regel wird man das nicht kurz vor Schluss tun, weil die verbleibende Gültig­keitsdauer des CA-Zertifikats bestimmt, wie lange die damit ausgestellten Zertifikate maximal gelten können.

Als Tools für das Erneuern des CA-Zertifikats bieten sich certsrv.msc oder certutil.exe an. Dabei muss man entscheiden, ob man auch gleich neue Schlüssel generieren möchte. Das Beibehalten der Keys vereinfacht die Aufgabe, bestimmte Umstände wie eine lange CRL oder eine mögliche Kompro­mittierung der Schlüssel können jedoch das Erzeugen eines neuen Paares erfordern.

Vor der Erneuerung des CA-Zertifikats kann man über die Datei CAPolicy.inf einige Optionen konfigurieren, darunter dessen Gültigkeitsdauer.

Nach dem erfolgreichen Ausstellen eines neuen Zertifikats auf einer Root-CA muss man dieses an die Clients verteilen. Bei einer Enterprise-CA erfolgt dies automatisch, bei einer Standalone-CA kann man dafür certutil.exe oder ein GPO verwenden.

Source link

Loading...