Aus verschiedenen Gründen kann es notwendig sein, eine Windows Zertifizierungsstelle (Certification Autority – kurz CA) auf einen anderen Server umzuziehen.
Im folgenden Beispiel soll eine CA von einem Windows 2003 Server auf einem Windows 2008 R2 Server umziehen, dabei ändert sich auch der Servername.
Voraussetzungen:
- generell ist es empfehlenswert eine unveränderliche Weblokation für das Root-Zertifikat und die Zertifikatssperrlisten einzutragen
- bevor die neue CA installiert wird, muss die alte CA deinstalliert sein
- damit es beim wiederherstellen des CA-Backups keine Probleme gibt, sollte die CA-Datenbank möglichst an der Standardstelle installiert sein (siehe: Windows 2003 Zertifikat Authorität Datenbank und Logdateien verscheiben)
Vorgehen:
CA-Datenbank-Backup auf dem alten Server erstellen.
- Certification Authority snap-in öffnen und Rechtsklick auf den CA Namen, unter All Tasks > Back up CA
- Im Backup-Wizzard fortfahren und „Private key and CA certificate“ sowie „Certificate database and certificate database log“ auswahlen
- zur Sicherung sollte ein leerer Zielordner gewählt werden
- anschließend wird ein Passwort zur Sicherung des CA-Backups verlangt
- anschließend den Vorgang beenden
CA-Registry vom alten Server sichern.
- regedit starten
- den Registry-Zweig unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration exportieren
CA-Datenbank-Backup und CA-Registry auf neuen Server kopieren.
Nun ist auf dem alten Server der CA-Dienst zu deinstallieren.
Jetzt kann auf dem neuen Server die CA wieder aufgebaut werden.
- im Windows 2008 Server Manager unter Roles „Add Roles“ auswählen
- die Rolle Active Directory Certificate Services auswählen und fortfahren
- in der Detailauswahl muss Certification Authority und ggf. Web Enrollment ausgewählt sein (zusätzlich erforderliche Komponenten werden automatisch vorgeschlagen)
- in kleinen Umgebungen kann eine Root-CA auch AD integriert sein, dann ist Enterprise zu wählen – bei einer Standalone-CA entsprechend Standalone
- anschließend Root für die Root-CA auswählen
- im gewählten Beispiel ist nun das bestehende Schlüsselpaar zu importieren, darum Use existing private key und Select a certificate and use its associated private key
- nun das gesicherte Zertifikat auswählen und das Passwort aus dem CA-Backup Schritt eingeben
- nur noch die Installation abschließen und fertig
Jetzt kann die CA-Registry Sicherung wieder eingespielt werden.
- Merge Option der .reg-Datei ausführen
- mittels regedit den Registry-Zweig HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration durchsuchen und den Servernamen austauschen
- besonders die beiden Schlüssel CACertPublicationURLs und CRLPublicationURLs müssen hinsichtlich ihrer Pfade an die neue Infrastruktur angeglichen werden
Abschließend ist noch die CA-Datenbank-Sicherung einzuspielen.
- im Windows 2008 Server Manager die Rolle Active Directory Certificate Services öffnen und auf den CA-Namen rechtsklicken dort unter All Tasks > Restore CA auswählen
- die Warnung, dass der CA-Dienst für den Vorgang gestoppt werden muss bestätigen
- im Restore-Wizzard den Pfad zur CA-Datenbank-Sicherung auswählen (bei Fehlermeldungen ggf. eine Ebene höher ansetzen)
- den Vorgang fortsetzen und zum Abschluss den CA-Dienst neustarten lassen
Damit ist der Umzug vollzogen und die CA auf dem neuen Server unter neuem Namen erreichbar.
Ggf. sind noch die Freigaben für die Zertifikate und die Sperrlisten zu erstellen oder anzupassen, damit die CA ordnungsgemäß funktioniert.
Resourcen:
Move a CA to a Different Computer (MS)
How to Move a certification authority to another server (MS)
Active Directoy Certificate Service Upgrade and migration Guidance (MS)
Vielen Dank für die Anleitung, hat mir sehr weiter geholfen.
Nach dem einspielen der CA Sicherung konnte ich die CA nicht mehr starten. Es kam die Fehlermeldung „Ungültiger Schlüssel 0x80090003“.
Nachdem ich zusätzlich zur Zertifizierungsdatenbank auch noch einmal den Privaten schlüssel und das Zertifikat importiert habe (beide Haken setzen), hat es funktioniert.
mittels regedit den Registry-Zweig HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration durchsuchen und den Servernamen austauschen
…Da dort mehrere male der servername drin steht, wo genau soll ich diesen austauschen?
Jedenfalls ist es mir insgesamt nicht gelungen das erfolgreich umzusetzen. mithilfe anderer anleitungen gelang es mir zumindest den dienst zu starten, aber kein neues zertifikat zu erstellen, da bei der zertifikatsanforderungswebseite bei verschiedenen dropdowns der inhalt fehlte. muss man da nicht noch ein bissel mehr tun?
Inwieweit ist es wichtig die alte CA zu deinstallieren? Reicht erstmal nicht einfach die abschaltung des dienstes?
Mit „durchsuchen und […] austauschen“ ist jeder Treffer im besagten Pfad gemeint.
Tatsächlich reicht es erstmal auch, die CA zu deaktivieren, sie sollten nur nicht beide parallel betrieben werden, daher ist final die Deinstallation anzustreben.
Wenn auf der CertEnroll-Seite die „Dropdowns“ leer sind, kann das auch hieran liegen.
Natürlich können auch andere Systemkonfigurationen noch einen Ausschlag geben, der beschriebene Weg hat aber auf den erwähnten Systemen genau so schon funktioniert.