Kompaktieren (Defragmentieren) der Zertifizierungsstellen-Datenbank

Manchmal kommt es vor, dass die Datenbank der Zertifizierungsstelle extrem groß wird. Vielleicht sind unbemerkt sehr viele Zertifikatanforderungen eingetroffen und abgelehnt worden, vielleicht befinden sich auch viele Zertifikate in der Datenbank, die doppelt ausgestellt wurden. Nachdem die entsprechenden Einträge aus der Zertifizierungsstellen-Datenbank gelöscht wurden, muss (kann) der nun gewonnene Speicherplatz noch durch Kompaktierung dieser im Dateisystem des Servers freigegeben werden.

Identifikation des Speicherorts der Zertifizierungsstellen-Datenbank

In der Standardeinstellung befindet sich die Zertifizierungsstellen-Datenbank unter C:\Windows\System32\CertLog. Falls die Zertifizierungsstellen-Datenbank an einem anderen Speicherort liegen sollte, kann man diesen mit folgendem Befehl identifizieren:

certutil -getreg DB*

Zertifizierungsstelle in den Wartungsmodus versetzen

Zu allererst sollte man, falls noch nicht geschehen, die Zertifizierungsstelle in den Wartungsmodus versetzen. Dies verhindert, dass sich der Inhalt der Zertifizierungsstellen-Datenbank bis zum Abschluss der Wartungsarbeiten noch verändert, und ermöglich auch, eine Sicherung, die zu Beginn der Arbeiten erstellt wurde, wiederherzustellen.

Erstellen einer Sicherung der Zertifizierungsstellen-Datenbank

Anschließend sollte man eine Sicherung der Zertifizierungsstellen-Datenbank vornehmen. Die Sicherung bewirkt, dass die Transaktionsprotokolle (engl. Transaction Logs) der Datenbank in die Datenbankdatei übernommen werden dürfen.

certutil -backupdb <Pfad-zum-Backup-Ordner>

Beenden des Zertifizierungsstellen-Dienstes

Wird nun der Zertifizierungsstellen-Dienst beendet, werden die Transaktionsprotokolle in die Datenbankdatei übernommen.

Alleine durch diesen Vorgang kann schon sehr viel Speicherplatz gewonnen werden.

Kompaktieren der Zertifizierungsstellen-Datenbank

Wichtig: Die Kompaktierung der Datenbank muss auf den Live-Daten geschehen. Es ist nicht möglich, ein Backup der Zertifizierungsstellen-Datenbank zu kompaktieren und dieses dann wiederherzustellen.

Die Zertifizierungsstelle kann nun mit folgendem Befehl kompaktiert (defragmentiert) werden.

esentutl /d <Pfad-zur-Datenbankdatei>

Nachdem die Kompaktierung der Datenbankdatei abgeschlossen ist, sollte diese nun deutlich kleiner sein als zuvor.

Wiederinbetriebnahme der Zertifizierungsstelle

Anschließend kann der Zertifizierungsstellen-Dienst wieder gestartet werden.

Es sollte nun ein neues Backup der kompaktierten Datenbank erstellt werden.

certutil -backupdb <Pfad-zum-Backup-Ordner>

Ebenso sollte man nicht vergessen, die Zertifizierungsstelle wieder aus dem Wartungsmodus zu nehmen.

Weiterführende Links: