Добрый день, уважаемый читатель!

Я расскажу Вам о своем кошмаре, который я пережил мигрируя CA с Windows 2008R2 на Windows 2012 R2. В инете очень много статьй по этому поводу и никаких проблем не должно было быть.

К своему сожалению — я не особо Windows Admin, я больше *nix админ, но была поставлена задача миграции CA — её нужно сделать.

Под катом я расскажу, как я прошел этот процесс и получил не совсем HappyEnd в конечном итоге.

Итак, поехали…

Исходные данные:
Источник — Windows 2008 R2 с Root CA
Таргет — Windows 2012R2

Сервер Windows 2012R2 у меня был уже установлен и минимально настроен.

Изначально план действий был такой(укороченные действия):

  1. Делаем Backup CA+Private Key и копируем его на общую шару для обоих компов
  2. Выводим target из домена и меняем IP
  3. Делаем snapshot сервера
  4. Меняем IP на источнике
  5. Заходим на новый сервер Windows 2012R2 под админом — вводим его в домен с таким же именем и назначаем старый IP
  6. Ставим роль Active Directory Certificate Service (CA, CA Web Enrollment, NDES, Online Responder)
  7. Указываем, что это Enterprise CA
  8. Восставливаем CA+Private Key из бэкапа
  9. Happy End

Согласитесь ну ничего сложного нет. И я приступил к реализации. На самом деле никаких проблем не было и все прошло, как по маслу… Сервис стартанул, Certificate Templates появились и сами сертификаты появились. Вообщем все ОК. Поэтому я пошел спать. Утром никаких жалоб на работу CA не поступало и поэтому считал я, что все работает, и приступил к другим задачам. В процессе их решения мне понадобился сертификат. Я создал .csr и пошел по ссылке vm_ca/certsvc, чтобы подписать и получить сертификат и вот на этом этапе произошла ошибка. К сожалению скриншот я не сделал, но там говорилось о mismatch user information и еще какие-то ошибки. Ну вот и приплыли — подумалось мне. Начал гуглить, но к сожалению ничего внятного не нашел.

Уже вечером решили удалить CA Windows 2012R2 и поставить все по новой и тут допустил ошибку, вместо Enterprise CA я выбрал вариант Standalone CA (о своей ошибке правда я уже узнал позже). Проделал все операции вновь… все прошло без ошибок — но при выборе папки Certificate Templates — я получаю Element not found, хотя если выбрать Manage — то templates на месте.

Я подумал, что не хватает прав для данной CN=Certificate Templates, поэтому при помощи ADSI Edit дал Read для vm_ca$. Перезапустил CertSvc и… результат: Element not found.

Тут мне взгрустнулось ибо на часа 2 ночи… и CA не работает. Выключаю CA Windows 2012R2 и восставливаю VM CA Windows 2008R2 из snapshot. Возвращаю сервер в AD (т.к. при попытке входа под доменной учетке выходит ошибка взаимоотношений между сервером и AD).

Ну думаю… все теперь-то будет ОК, но увы… все так же Certificate Templates — я получаю Element not found. Оставлю все до утра — ибо утро вечера мудренее.

Утром погуглил, почитав разного рода статьи — решаюсь на переустановку CA уже на старом сервере в надежде решить проблему Element Not Found и выдачей сертификатов через Web.

Процесс довольно простой:

  1. Удаяем роль CA
  2. Перегружаемся
  3. Ждем завершения процесса удаления
  4. Добавляем роль CA (указывем CA, CA Web Enrollment, NDES, Online Responder)
  5. Указываем, что у меня Enterprise CA и у меня есть приватный ключ
  6. Ждем завершения установки и восставливаем все из бэкапа, который мы делали в самом начале.
  7. Как обычно, все проходит на ура — без ошибок и сервис стартанул

С замиранием сердца на щелкаю на Certificate Templates — и… мне выдался список — это уже маленькая победа. Остается проверить работу выдачи сертификата через Веб. Прохожу по ссылке: vm_ca/certsvc и кликаю на Request a Certificate и далее advanced certificate request… указываю .csr запрос и получаю готовый сертификат. Выдахаю… Восстановить CA получилось.

Выводы:

  1. Обязательно делайте бэкап и snapshot
  2. Документируйте свои действия — это поможет вернуть все обратно или же найти ошибку быстрее

P.S. Мне же предстоит вновь попробовать миграцию CA с Windows 2008R на Windows 2012R2.

Комментарии (11)


  1. szelga
    17.04.2019 09:53

    а вторым номером поднять не получилось? потом первый загасить и отозвать по прошествии некоторого времени.


    1. Alexey_Shalin Автор
      17.04.2019 10:39

      был уже второй… я думаю, что у меня реально в этом направлении мало знаний… нужно будет подтянуть


  1. questor
    17.04.2019 09:56

    К выводам я бы добавил ещё один: тестируйте!!!

    Ничто не мешало сделать копии виртуалок и по заранее подготовленному чеклисту попробовать пройти сценарий и попробовать проверить, насколько успешно прошла миграция.

    Тут главное — полная изоляция тестового контура от боевой сети.


    1. Alexey_Shalin Автор
      17.04.2019 10:40

      Для это нужно было бы поднять
      Копию АД
      Копию SubCA (возможно и не нужно было бы)
      Копию CA

      Но если честно Вы, правы… нужно было попробовать и так


      1. gotch
        17.04.2019 15:46

        Руками, если что-то на физике было, это делается за два часа. На виртуалках еще быстрее.
        В Veeam Backup такой стенд собирается за 5 минут (правда отлаживается иногда часа два, зато понимаешь, что у тебя криво бекапится).


  1. Pas
    17.04.2019 10:02

    Можно для плавного перехода выпустить на действующем CA сертификат не клиентский, а intermediate CA, его уже передать в новый сервер и сделать его там выдающим. И уже потом развлекаться и плавно переводить клиентские серты.


  1. DikSoft
    17.04.2019 11:27

    Необходимо и достаточно было прочитать Vadims Podans! )
    После всех этих опытов настоятельно рекомендую зайти в ADSIEDIT и посмотреть точки подключения:
    Configuration --> Services --> Public Key Services


    1. Alexey_Shalin Автор
      17.04.2019 18:32

      Спасибо. Проверю.


  1. gotch
    17.04.2019 15:42

    Пример, как не надо заниматься системным администрированием.
    Если это Windows, то Next-next-next-finish? Печально, что не разбираясь в технологии, вы решили не изучая ее взяться за работу.
    Опыт предшественников тоже не заслуживает внимания?


    1. Alexey_Shalin Автор
      17.04.2019 18:30

      Добрый. Я именно по этому этой доке и делал.все удачно прошло… т.е все перенеслось… все работало… Только при попытке получить сертификат через веб были ошибки… а так все перенеслось нормально...


      1. gotch
        18.04.2019 11:36

        Да, извините, резковато ответил. Эмоции.
        Смотрите, что у вас еще могло сломаться.
        Если вы про реестр забыли, а я его не вижу в статье, то возможно несовпадение точек распространения CRL, а при обновлении ключа и AIA.
        Из-за удаления учетной записи компьютера, могут слететь разрешения в
        CN=имя вашего CA,CN=KRA,CN=Public Key Services,CN=Services,CN=Configuration,DC=ваш,DC=домен

        CN=имя вашего CA,CN=сервер,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,DC=ваш,DC=домен

        CN=имя вашего CA,CN=AIA,CN=Public Key Services,CN=Services,CN=Configuration,DC=ваш,DC=домен

        Так же стоит проверить что все шаблоны, которые раньше обслуживал «старый» CA, теперь обслуживает новый. Или просто добавить его к выдаче типа
        certutil -setcatemplates +DomainController
        certutil -setcatemplates +WebServer
        certutil -setcatemplates +Machine
        certutil -setcatemplates +User
        certutil -setcatemplates +SubCA

        Если использовали CAPolicy.inf — перенесите его, сыграет роль при обновлении ключа.