При удалении службы сертификации Active Directory Certificate Services необходимо выполнить ряд предварительных и пост шагов, необходимых для корректного удалений центра сертификации (Certification Authority или CA) из Active Directory. Необходимо отозвать все выданные сертификаты, удалить закрытые ключи, роль ADCS и вручную очистить AD обо всех упоминаниях удаляемого центра сертификации. При некорректном удалении центра сертификации из AD, приложения, зависящие от инфраструктуры открытого ключа, могут работать неправильно.
Отзыв выданных сертификатов
В первую очередь нужно отозвать все выданные сертификаты. Для этого откройте консоль Certification Authority, разверните узел сервера сертификации и в перейдите в раздел Issued Certificates. В правом окне выберите выданный сертификат и в контекстном меню выберите пункт All Tasks > Revoke Certificate.
Укажите причину отзыва сертификаты (Cease of Operation — Прекращение работы), время с которого он считается недействительным (текущее) и нажмите Yes.
Сертификат пропадет из списка. Аналогичным образом поступите со всеми выданными сертификатами.
Затем откройте свойства ветки Revoke Certificates.
Увеличьте значение поля CRL publication interval (интервал публикации списка отозванных сертификатов) – этот параметр определяет периодичность обновления списка отозванных сертификатов.
Нажмите ПКМ по узлу Revoked Certificates и выберите All Tasks > Publish.
Выберите New CRL и нажмите OK.
Проверьте и, в случае необходимости, откажите в выдаче всем ожидающим запросам на выдачу сертификатов. Для этого в контейнере Pending Requests выделите запрос и в контекстном меню выберите All Tasks -> Deny Request.
Удаление роли Active Directory Certificate Services
На сервере с ролью CA откройте командную строку и остановим работы служб сертификации командой:
certutil –shutdown
Чтобы вывести список локально хранящихся закрытых ключей выполним команду:
certutil –key
В нашем примере с CA ассоциирован один закрытый ключ. Удалить его можно командой certutil -delkey CertificateAuthorityName. В качестве имени ключа используется значение, полученное на предыдущем шаге. Например,
certutil –delkey le-DomainController-b44c7ee1-d420-4b96-af19-8610bf83d263
Чтобы убедится, что закрытый ключ CA удален еще раз выполним команду:
certutil –key
Затем откроем консоль Server Manager и удалим роль Active Directory Certificate Services.
После удаления роли сервер нужно перезагрузить.
Удаление объектов CA из Active Directory
При установке центра сертификации в структуре Active Directory создается ряд служебных объектов CA, которые не удаляются при удалении роли ADCS. Удаляется только объект pKIEnrollmentService, благодаря чему клиенты не пытаются запрашивать новые сертификат у выведенного из эксплуатации CA.
Выведем список доступных центров сертификации (он пуст):
certutil
Откроем консоль Active Directory Site and Services и включим отображение сервисных веток, выбрав в верхнем меню пункт View ->Show Services Node.
Затем последовательно удалим следующие объекты AD:
- Центр сертификации в разделе Services -> Public Key Services -> AIA.
- Контейнер с именем сервера CA в разделе Services -> Public Key Services -> CDP.
- CA в разделе Services > Public Key Services > Certification Authorities.
- Проверьте, что в разделе Services -> Public Key Services -> Enrollment Services отсутствует объект pKIEnrollmentService (он должен удалиться во время процесса деинсталляции CA). Если он присутствует, удалите его вручную.
- Удалите шаблоны сертификатов, расположенные в разделе Services -> Public Key Services > Certificate Templates (выбелить все шаблоны CTRL+A).
Удаляем сертификаты, опубликованные в контейнере NtAuthCertificates
При установке нового центра сертификации его сертификаты добавляются и хранятся в контейнере NTAuthCertificates. Их также придется удалить вручную. Для этого с правами администратора предприятия выясним полный LDAP путь к объекту NtAuthCertificates в Active Directory.
certutil -store -? | findstr "CN=NTAuth"
Осталось удалить сертификаты с помощью утилиты certutil , указав полный LDAP путь, полученный на предыдущем шаге.
certutil –viewdelstore “ldap:///CN=NtAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,DC=no1abnopary,DC=local?cACertificate?base?objectclass=certificationAuthority”
Подтверждаем удаление сертификата.
Далее выполним команду:
certutil –viewdelstore “ldap:///CN=NtAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,DC=no1abnopary,DC=local?cACertificate?base?objectclass=pKIEnrollmentService”
Подтвердите удаление сертификата.
Удаление базы центра сертификации
База CA автоматически не удаляется при удалении службы ADCS, поэтому эту операцию нужно выполнить вручную, удалив каталог %systemroot%\System32\Certlog.
Удаление сертификатов с контроллеров домена
Необходимо удалить сертификаты, выданные контроллерам домена. Для этого на контроллере домена нужно выполнить команду:
certutil -dcinfo deleteBad
Certutil попытается проверить все сертификаты, выданные DC. Сертификаты, которые не удастся проверить, будут удалены.
На этом полное удаление службы Active Directory Certificate Services из структуры Active Directory завершено.
Спасибо, отлично написано!
Удалил все чисто и поставил новый CA.
Если я выполню эту инструкцию, то в будущем без доступа к интернету я смогу снова настроить на нём Центр Сертификатов?
Для внутреннего CA вам не нужен интернет.
На действующие контроллеры домены как то отразится удаление их сертификатов? у меня два контроллера домена один старый 2008r2 на нем стоит СА который не нужен в принципе, и новый win server 2019 . На обоих только AD и DNS , старый 2008 R2 нужно вывести из домена и обновить, а эта роль которая ни для чего не используется мешает это сделать.. (
Все же решил удалить все по данной инструкции все вышло удачно! Недельку пусть поработает посмотрим вылезут ли ошибки, а дальше буду контроллер домена обновлять, спасибо за статью!
Это хорошо, значит ваш CA нигде не использовался 🙂
а как почистить кучу запросов в ожидании?
День добрый. А есть ли подобный мануал по переносу центра сертификации на другой DC?
Здравствуйте!
Центр Сертификации обязательно на контроллер домена ставится?
У Вас на сайте есть инструкция по развертыванию и настройки?
Нет, не обязательно. Но для экономии экземпляров Windows Server в принципе можно роли и совместить. Особенно если это промежуточный CA.
Но в best practices все же при построении схемы сертификации — root CA после подписания сертификата промежуточного CA нужно отключать, чтобы снизить вероятность компрометации. Поэтому rootCA в такой схеме все же не нужно ставить на DC