Я расскажу Вам о своем кошмаре, который я пережил мигрируя CA с Windows 2008R2 на Windows 2012 R2. В инете очень много статьй по этому поводу и никаких проблем не должно было быть.
К своему сожалению — я не особо Windows Admin, я больше *nix админ, но была поставлена задача миграции CA — её нужно сделать.
Под катом я расскажу, как я прошел этот процесс и получил не совсем HappyEnd в конечном итоге.
Итак, поехали…
Исходные данные:
Источник — Windows 2008 R2 с Root CA
Таргет — Windows 2012R2
Сервер Windows 2012R2 у меня был уже установлен и минимально настроен.
Изначально план действий был такой(укороченные действия):
- Делаем Backup CA+Private Key и копируем его на общую шару для обоих компов
- Выводим target из домена и меняем IP
- Делаем snapshot сервера
- Меняем IP на источнике
- Заходим на новый сервер Windows 2012R2 под админом — вводим его в домен с таким же именем и назначаем старый IP
- Ставим роль Active Directory Certificate Service (CA, CA Web Enrollment, NDES, Online Responder)
- Указываем, что это Enterprise CA
- Восставливаем CA+Private Key из бэкапа
- 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.
Процесс довольно простой:
- Удаяем роль CA
- Перегружаемся
- Ждем завершения процесса удаления
- Добавляем роль CA (указывем CA, CA Web Enrollment, NDES, Online Responder)
- Указываем, что у меня Enterprise CA и у меня есть приватный ключ
- Ждем завершения установки и восставливаем все из бэкапа, который мы делали в самом начале.
- Как обычно, все проходит на ура — без ошибок и сервис стартанул
С замиранием сердца на щелкаю на Certificate Templates — и… мне выдался список — это уже маленькая победа. Остается проверить работу выдачи сертификата через Веб. Прохожу по ссылке: vm_ca/certsvc и кликаю на Request a Certificate и далее advanced certificate request… указываю .csr запрос и получаю готовый сертификат. Выдахаю… Восстановить CA получилось.
Выводы:
- Обязательно делайте бэкап и snapshot
- Документируйте свои действия — это поможет вернуть все обратно или же найти ошибку быстрее
P.S. Мне же предстоит вновь попробовать миграцию CA с Windows 2008R на Windows 2012R2.
Комментарии (11)
questor
17.04.2019 09:56К выводам я бы добавил ещё один: тестируйте!!!
Ничто не мешало сделать копии виртуалок и по заранее подготовленному чеклисту попробовать пройти сценарий и попробовать проверить, насколько успешно прошла миграция.
Тут главное — полная изоляция тестового контура от боевой сети.Alexey_Shalin Автор
17.04.2019 10:40Для это нужно было бы поднять
Копию АД
Копию SubCA (возможно и не нужно было бы)
Копию CA
Но если честно Вы, правы… нужно было попробовать и такgotch
17.04.2019 15:46Руками, если что-то на физике было, это делается за два часа. На виртуалках еще быстрее.
В Veeam Backup такой стенд собирается за 5 минут (правда отлаживается иногда часа два, зато понимаешь, что у тебя криво бекапится).
Pas
17.04.2019 10:02Можно для плавного перехода выпустить на действующем CA сертификат не клиентский, а intermediate CA, его уже передать в новый сервер и сделать его там выдающим. И уже потом развлекаться и плавно переводить клиентские серты.
DikSoft
17.04.2019 11:27Необходимо и достаточно было прочитать Vadims Podans! )
После всех этих опытов настоятельно рекомендую зайти в ADSIEDIT и посмотреть точки подключения:
Configuration --> Services --> Public Key Services
gotch
17.04.2019 15:42Пример, как не надо заниматься системным администрированием.
Если это Windows, то Next-next-next-finish? Печально, что не разбираясь в технологии, вы решили не изучая ее взяться за работу.
Опыт предшественников тоже не заслуживает внимания?Alexey_Shalin Автор
17.04.2019 18:30Добрый. Я именно по этому этой доке и делал.все удачно прошло… т.е все перенеслось… все работало… Только при попытке получить сертификат через веб были ошибки… а так все перенеслось нормально...
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 — перенесите его, сыграет роль при обновлении ключа.
szelga
а вторым номером поднять не получилось? потом первый загасить и отозвать по прошествии некоторого времени.
Alexey_Shalin Автор
был уже второй… я думаю, что у меня реально в этом направлении мало знаний… нужно будет подтянуть