I’ve decided to do a tutorial on upgrading from Windows 2003R2 Certificate Authority (CA) because I had to migrate one recently. We cannot upgrade the CA directly from 2003R2 to 2019. We need to upgrade to a version of Windows prior to 2019 first. The 2003R2 CA database is not compatible with the 2019 CA version. In this tutorial, we will use 2012R2 as the intermediate version. If the CA is running on any version of Windows from 2008R2 and later, it can be upgraded to 2019 directly. The following is a high-level summary of the steps we’ll use to migrate a CA from one server to another.

Summary of Steps

On the original server: On the destination server:

Back up the Certificate Authority

Open up the Certification Authority application. Right Click on the name of the certificate authority and select Backup CA. Select Private Key and CA Certificate, and Certificate database and certificate database log, and select a location to store the backup files. Hit Next. Enter the password. This password will be used later to restore the root CA certificate and backup files. Hit Next.

Back up the CA Registry Key

Use Regedit to export the registry key for the certificate authority service. Navigate to : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSVC\Configuration Right click the key with the name of the root CA and select Export. Type in a name to save the file. For convenience, I will store the exported registry file in the same folder as the CA backup files. We should have something like below in the folder that has our CA backup files and registry export.

Uninstall the CA Role

We now need to remove the Certificate Authority role from the server. In Windows 2003R2, we need to navigate to Control Panel->Add or Remove Programs. Select Add/Remove Windows Components Untick Certificate Services, and click Next.

Install the CA Role on the Destination Server

The intermediate server we are going to pick to migrate to is the Windows Server 2012R2 server. We could have picked to migrate to any operating system from 2008R2 to 2016 directly from 2003R2. Open Server Manager, and select Add roles and features. Select Role-based or feature-based installation. Then click Next. Select Active Directory Certificate Service Click Add Features when you get this prompt after the select Active Directory Certificate Wizard Select Certification Authority. The Add Roles and Features Wizard will prompt to ask if you want to add additional required roles and features. Select Add Features. For an intermediary migration, we don’t need to select any other role services. However, for this tutorial, I will select the Certification Authority Web Enrollment role service as well. Click Next. Accept the defaults and click Next. Click Install.

Configure the CA

Server Manager will now have a yellow exclamation mark. It wants us to configure the Active Directory Certificate Services which we have just installed. Click on the link in the message. For the credential, enter the credentials that have Enterprise Administrator rights. Click Next. Select the role services, and click Next. Select Enterprise CA. Click Next. Select Root CA. Click Next.

Import the CA Certificate

Choose Use existing private key, and choose Select a certificate and use its associated private key. Click Next. Click Import. Navigate to the certificate in the folder that contains the CA backups, and enter the password we had used earlier. Select the certificate, and click Next. Accept the default locations. Click Configure. Click Close.

Modify the Exported Registry Key

We will need to import the registry key next. Modify the registry key using NOTEPAD. Locate CAServerName and change it to the name of the server where we are currently migrating to.

Stop the CA Service

Stop the CA Service.

Import the Modified Registry Key

Double click on the exported registry key. A message will appear. Click Yes to continue.

Restore the CA Database

We now need to restore the CA backups. Right click on the CA name and select All Tasks -> Restore CA Locate the backup folder using Browse and click Next Enter the password we used earlier. Click Next. Click Finish. Click Yes to the prompt about starting up Active Directory Certificate Services. This now completes the migration to the intermediate server.

Migrating the CA From the Intermediate Server to the Final Destination Server

The preceding steps will need to be repeated to migrate from the intermediate server to the final destination server. I will only show a brief outline of this last phase in this tutorial, because aside from the GUI differences between 2003R2 and 2012R2, the steps are the same.

Backup the CA on the Intermediate Server

We need to backup the CA database and export the CA registry key. Then we uninstall the CA role.

Uninstall the CA on the Intermediate Server

You need to uninstall the Certificate Authority Web Enrollment role service first. After that has been uninstalled, you can then proceed to uninstall the Certification Authority role service.

On the Final Destination Server

Follow Steps 1 to 8 from the Summary section for actions to perform on the destination server. Use the screen shots in the previous steps that were performed on the intermediate server as the GUI for the Add Server roles are close to being identical between 2012R2 and 2019.

Conclusion

The migration steps are straightforward. However, there is one GOTCHA that is there every time I have done one of these.

GOTCHAS

There is one gotcha that I have not seen in other articles about migrating root CAs, yet is there on all the occasions that I have done the CA migrations. Most CA installations use the default settings during installation. This means that the CRL URL are pointing to the server name that the CA was installed to. When you migrate to the new server, any newly issued certificates will have the new CRL URL location, which points to the new server. However, existing certificates, while valid, will still be looking at the old CRL URL to obtain the certificate revocation list. After migration, any services that use a certificate will still function even if you haven’t re-issued a new certificate to the device or service. However, after about a week, the certificate revocation list will be stale, and a service is usually configured to not use a certificate if it can’t access or retrieve an updated certificate revocation list. This usually means the service will stop working. You got two options in this situation. Re-issue a new certificate to the device or service, or set up the CA so that it publishes the certificate revocation list to the original CRL URLs as well. Another gotcha I saw a few times is that any new templates you create do not get published, so you are not able to issue a new certificate template. I had to Google this issue, and it was the flags attribute was no longer set to 10 for the following AD object CN=Enrollment Services, CN=Public Key Services, CN=Services, CN=Configuration,DC=. You can use ADSI Edit to modify the above flags setting. This content is accurate and true to the best of the author’s knowledge and is not meant to substitute for formal and individualized advice from a qualified professional. © 2021 sengstar2005

Migrate the Root Certificate Authority to Windows Server 2019 - 38Migrate the Root Certificate Authority to Windows Server 2019 - 27Migrate the Root Certificate Authority to Windows Server 2019 - 79Migrate the Root Certificate Authority to Windows Server 2019 - 53Migrate the Root Certificate Authority to Windows Server 2019 - 58Migrate the Root Certificate Authority to Windows Server 2019 - 52Migrate the Root Certificate Authority to Windows Server 2019 - 30Migrate the Root Certificate Authority to Windows Server 2019 - 95Migrate the Root Certificate Authority to Windows Server 2019 - 87Migrate the Root Certificate Authority to Windows Server 2019 - 7Migrate the Root Certificate Authority to Windows Server 2019 - 52Migrate the Root Certificate Authority to Windows Server 2019 - 63Migrate the Root Certificate Authority to Windows Server 2019 - 43Migrate the Root Certificate Authority to Windows Server 2019 - 17Migrate the Root Certificate Authority to Windows Server 2019 - 94Migrate the Root Certificate Authority to Windows Server 2019 - 51Migrate the Root Certificate Authority to Windows Server 2019 - 43Migrate the Root Certificate Authority to Windows Server 2019 - 73Migrate the Root Certificate Authority to Windows Server 2019 - 50Migrate the Root Certificate Authority to Windows Server 2019 - 84Migrate the Root Certificate Authority to Windows Server 2019 - 7Migrate the Root Certificate Authority to Windows Server 2019 - 13Migrate the Root Certificate Authority to Windows Server 2019 - 54Migrate the Root Certificate Authority to Windows Server 2019 - 26Migrate the Root Certificate Authority to Windows Server 2019 - 21Migrate the Root Certificate Authority to Windows Server 2019 - 65Migrate the Root Certificate Authority to Windows Server 2019 - 95Migrate the Root Certificate Authority to Windows Server 2019 - 7Migrate the Root Certificate Authority to Windows Server 2019 - 5Migrate the Root Certificate Authority to Windows Server 2019 - 51Migrate the Root Certificate Authority to Windows Server 2019 - 94Migrate the Root Certificate Authority to Windows Server 2019 - 71Migrate the Root Certificate Authority to Windows Server 2019 - 76Migrate the Root Certificate Authority to Windows Server 2019 - 39Migrate the Root Certificate Authority to Windows Server 2019 - 33Migrate the Root Certificate Authority to Windows Server 2019 - 17Migrate the Root Certificate Authority to Windows Server 2019 - 64Migrate the Root Certificate Authority to Windows Server 2019 - 26Migrate the Root Certificate Authority to Windows Server 2019 - 45Migrate the Root Certificate Authority to Windows Server 2019 - 32Migrate the Root Certificate Authority to Windows Server 2019 - 90Migrate the Root Certificate Authority to Windows Server 2019 - 75Migrate the Root Certificate Authority to Windows Server 2019 - 48Migrate the Root Certificate Authority to Windows Server 2019 - 72Migrate the Root Certificate Authority to Windows Server 2019 - 79Migrate the Root Certificate Authority to Windows Server 2019 - 92Migrate the Root Certificate Authority to Windows Server 2019 - 78Migrate the Root Certificate Authority to Windows Server 2019 - 83Migrate the Root Certificate Authority to Windows Server 2019 - 21Migrate the Root Certificate Authority to Windows Server 2019 - 43Migrate the Root Certificate Authority to Windows Server 2019 - 78Migrate the Root Certificate Authority to Windows Server 2019 - 6Migrate the Root Certificate Authority to Windows Server 2019 - 31Migrate the Root Certificate Authority to Windows Server 2019 - 94Migrate the Root Certificate Authority to Windows Server 2019 - 26Migrate the Root Certificate Authority to Windows Server 2019 - 18Migrate the Root Certificate Authority to Windows Server 2019 - 30Migrate the Root Certificate Authority to Windows Server 2019 - 93Migrate the Root Certificate Authority to Windows Server 2019 - 35Migrate the Root Certificate Authority to Windows Server 2019 - 73Migrate the Root Certificate Authority to Windows Server 2019 - 66Migrate the Root Certificate Authority to Windows Server 2019 - 42Migrate the Root Certificate Authority to Windows Server 2019 - 73Migrate the Root Certificate Authority to Windows Server 2019 - 22Migrate the Root Certificate Authority to Windows Server 2019 - 16Migrate the Root Certificate Authority to Windows Server 2019 - 6Migrate the Root Certificate Authority to Windows Server 2019 - 54Migrate the Root Certificate Authority to Windows Server 2019 - 6