Как восстановить закрытый ключ сертификата
Перейти к содержимому

Как восстановить закрытый ключ сертификата

  • автор:

Резервное копирование и восстановление закрытого ключа служб сертификатов

Вы не можете использовать функции резервного копирования и восстановления Certadm.dll для резервного копирования закрытых ключей служб сертификатов. Эти функции не могут создавать резервные копии закрытых ключей, так как эти функции предназначены для резервного копирования и восстановления базы данных служб сертификатов (и связанных файлов), а эта база данных не содержит закрытых ключей (даже для самоиданных сертификатов).

Чтобы создать резервную копию закрытого ключа служб сертификации, используйте оснастку MMC центра сертификации или команду certutil (с указанным параметром -backup или -backupkey). При резервном копировании закрытого ключа с помощью оснастки MMC центра сертификации или certutil закрытый ключ записывается в файл PKCS #12. Несмотря на то, что этот файл PKCS #12 защищен паролем, он должен считаться чрезвычайно конфиденциальным и должен храниться безопасно; Пароль к файлу PKCS #12 также должен быть защищен от посторонних лиц.

Аналогичным образом закрытые ключи не могут быть восстановлены функциями резервного копирования и восстановления служб сертификатов. Ключ резервной копии служб сертификатов, содержащийся в файле PKCS #12, можно восстановить с помощью оснастки MMC центра сертификации или команды certutil (указав команды -restore или -restorekey); Обратите внимание, что пользователю, выполняющему операцию восстановления, необходимо знать пароль для файла PKCS #12.

Существует только в двух случаях, когда необходимо создать резервную копию закрытого ключа служб сертификатов. Первый случай — после установки служб сертификатов. Второй случай — после любой операции продления сертификата служб сертификатов.

Назначение закрытого ключа новому сертификату после удаления исходного сертификата в IIS

В этой статье описывается, как восстановить закрытый ключ после использования оснастки консоли управления (MMC) сертификатов для удаления исходного сертификата в службах IIS.

Оригинальная версия продукта: службы IIS
Исходный номер базы знаний: 889651

Аннотация

Исходный сертификат удаляется из личной папки в хранилище сертификатов локального компьютера. В этой статье предполагается, что соответствующий файл сертификата создается в виде файла PKCS#7, CER-файла или CRT-файла. При удалении сертификата на компьютере под управлением IIS закрытый ключ не удаляется.

Назначение существующего закрытого ключа новому сертификату

Чтобы назначить существующий закрытый ключ новому сертификату, необходимо использовать версию windows Server Certutil.exe. Для этого выполните следующие действия:

  1. Войдите на компьютер, выполнив запрос сертификата, используя учетную запись с правами администратора.
  2. Нажмите кнопку «Пуск», выберите «Выполнить», введите mmc и нажмите кнопку «ОК».
  3. В меню «Файл » выберите » Добавить или удалить оснастку».
  4. В диалоговом окне «Добавление и удаление оснастки» выберите » Добавить».
  5. Выберите «Сертификаты«, а затем нажмите кнопку «Добавить».
  6. В диалоговом окне оснастки « Сертификаты» выберите » Учетная запись компьютера» и нажмите кнопку «Далее».
  7. В диалоговом окне «Выбор компьютера» выберите «Локальный компьютер : (компьютер, на котором запущена консоль)», а затем нажмите кнопку «Готово».
  8. Выберите Закрыть, а затем — ОК.
  9. В оснастке «Сертификаты» разверните раздел «Сертификаты«, щелкните правой кнопкой мыши папку «Личные», выберите пункт «Все задачи» и нажмите кнопку «Импорт».
  10. На странице «Добро пожаловать в мастер импорта сертификатов » нажмите кнопку «Далее».
  11. На странице «Файл для импорта » нажмите кнопку » Обзор».
  12. В диалоговом окне «Открыть» выберите новый сертификат , нажмите кнопку «Открыть» и нажмите кнопку «Далее».
  13. На странице хранилища сертификатов выберите «Разместить все сертификаты» в следующем хранилище, а затем нажмите кнопку » Обзор».
  14. В диалоговом окне «Выбор хранилища сертификатов» выберите » Личные«, » ОК», «Далее » и » Готово».
  15. В оснастке «Сертификаты» дважды щелкните импортированный сертификат, который находится в личной папке.
  16. В диалоговом окне «Сертификат» выберите вкладку «Сведения «.
  17. Выберите серийный номер в столбце «Поле » на вкладке «Сведения «, выделите серийный номер и запишите серийный номер.
  18. Нажмите кнопку «Пуск», выберите команду «Выполнить», введите cmd и нажмите кнопку «ОК».
  19. Введите следующую команду:

certutil -repairstore my "SerialNumber" 

Теперь у сертификата есть связанный закрытый ключ.

Теперь можно использовать MMC IIS для назначения восстановленного набора ключей (сертификата) нужному веб-сайту.

Сервер восстановления ключей

Центр сертификации Майкрософт (ЦС) можно настроить для архивации и восстановления закрытого ключа, связанного с открытым ключом, отправленным в запросе на сертификат. Восстановление полезно в случае потери ключа. По умолчанию архивировать можно только ключи шифрования. Нет необходимости архивировать ключи, предназначенные только для подписывания, так как для проверки подписи требуется только открытый ключ, если закрытый ключ подписи потерян.

Чтобы архивировать ключ, ЦС должен быть настроен на выдачу сертификатов агента восстановления ключей (KRA) и уже выдал по крайней мере один из них. Агент восстановления ключей — это администратор, уполномоченный организацией для расшифровки закрытых ключей. Для повышения безопасности рекомендуется назначать роли агента восстановления ключей и диспетчера сертификатов разным пользователям, разрешать диспетчеру сертификатов извлекать архивные ключи, но не расшифровывать их, а агенту восстановления ключей разрешать расшифровывать ключи, но не извлекать их.

Архивирование ключей

Клиент обычно запрашивает сертификат с помощью шаблона. Если шаблон требует архивирования закрытого ключа, клиент и ЦС выполняют следующие действия:

  1. Клиент получает и проверяет сертификат ЦС exchange, чтобы определить, подписан ли он тем же ключом, который использовался для подписи сертификата подписи ЦС. Это гарантирует, что единственный ЦС, который может расшифровать закрытый ключ, — это ЦС, из которого запрашивается сертификат.
  2. Открытый ключ в сертификате exchange ЦС используется для шифрования закрытого ключа, связанного с запросом сертификата, и запрос отправляется в ЦС.
  3. ЦС использует закрытый ключ, связанный с сертификатом exchange, для расшифровки закрытого ключа, отправленного клиентом, и проверяет, связаны ли открытые и закрытые ключи в запросе.
  4. ЦС шифрует закрытый ключ с помощью открытого ключа в сертификате KRA. Если ЦС выдал несколько сертификатов KRA, он шифрует закрытый ключ один раз с каждым доступным открытым ключом, чтобы любой авторизованный агент восстановления ключей смог восстановить ключ. Зашифрованные закрытые ключи хранятся в базе данных сертификатов.
  5. ЦС освобождает все ссылки на закрытый ключ и безопасно освобождает и обнуляет всю память, содержащую ключ. Это гарантирует, что ЦС не имеет дальнейшего доступа к ключу в формате чистого текста.

Для архивации ключей можно использовать только запрос CMC. Запросы CMC представлены интерфейсом IX509CertificateRequestCmc .

Восстановление ключей

Восстановление ключей напрямую не поддерживается службами сертификатов Active Directory или API регистрации сертификатов. Корпорация Майкрософт, однако, предоставляет следующие приложения для помощи в этом процессе:

  • Certutil.exe — это программа командной строки, которую можно использовать для получения сведений о конфигурации ЦС, проверки сертификатов, пар ключей и цепочек сертификатов, а также резервного копирования и восстановления ключей. Он входит в состав серверных операционных систем, начиная с Windows Server 2003.
  • Krecover.exe — это программа на основе диалогового окна, которая обеспечивает восстановление ключей. Он входит в комплект ресурсов, начиная с Windows Server 2003.

Для восстановления закрытого ключа выполняются следующие действия.

  1. Диспетчер сертификатов находит потенциальных кандидатов для восстановления ключей в базе данных сертификатов, используя имя сертификата, инициатора запроса или пользователя. Для этой цели можно использовать команду Certutil-getkey.
  2. Когда диспетчер сертификатов получит список сертификатов, снова вызывается команда -getkey с определенным серийным номером сертификата или отпечатком, чтобы получить файл PKCS #7, содержащий сертификат KRA, цепочку сертификатов пользователя и закрытый ключ, зашифрованный во время архивации с помощью открытого ключа KRA.
  3. Диспетчер сертификатов передает управление процессом агенту восстановления ключей, закрытый ключ которого соответствует открытому ключу, содержающемуся в сертификате KRA.
  4. Агент восстановления ключей расшифровывает архивный закрытый ключ, возвращенный в файле PKCS #7, с помощью закрытого ключа KRA. Это можно сделать с помощью команды Certutil-recoverkey, которая помещает ключ в защищенный паролем файл PKCS #12. Клиенту необходимо предоставить пароль с помощью безопасного аппаратного механизма.
  5. Клиент импортирует файл PKCS #12 и использует пароль для получения ключа.

Восстановление удаленного закрытого ключа

Добрый день.
Произошла следующая ситуация, с генерировал новый закрытый ключ для Континента, получил новый сертификат, новый сертификат привязал к контейнеру, и по ошибке удалил контейнер с закрытым ключем нового сертификата, а не старого. И только на следующий день, обнаружил что удалил не тот контейнер, но при этот континент нормально подключается и работает.
Подскажите возможно ли восстановить удаленный из реестра крипто про контейнер с закрытым ключем?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Меньше Больше

  • Сообщений: 8
  • Спасибо получено: 0

08 фев 2019 08:31 #10315 от kvalf
kvalf ответил в теме Восстановление удаленного закрытого ключа

Ошибочка вышла, оказывается не удалил контейнер, его можно найти если в крипто про выбрать «Введенное имя задает ключевой контейнер» Компьютера, а не Пользователя

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Меньше Больше

  • Сообщений: 46
  • Спасибо получено: 4

18 сен 2019 07:53 #13518 от dadhi
dadhi ответил в теме Восстановление удаленного закрытого ключа

А у меня сегодня непонятное дело произошло.

Мною заранее был сформирован криптоконтейнер на носителе JaCarta, и под этот контейнер сегодня был выпущен сертификат.
Казалось, дело в шляпе.. привязать посредством КриптоПРО сертификат к контейнеру .. но что то пошло не так! )))

А именно, после автоматически успешно определённого контейнера для сертификата, КриптоПРО запросил пин код и после его ввода, зависнув секунд на 20 выдал сообщение «внутренняя ошибка»!!

после чего я покрылся липким потом обнаружив что нужный криптоконтейнер попросту исчез!! остался только старый, и разумеется неподходящий для выпущенного сертификата!

Как это возможно??

разумеется я позвонил в техподдержку, там запросили удалённое подключение, час ковырялись. ничего не получилось и не нашли ничего другого как перевыпустить контейнер с сертификатом. разумеется уже бесплатно и в этот же день!

Но вопрос остался. что это за глюк и как этого избежать в дальнейшем?
есть ли метод восстановления файлов на JaCarta, или как всё же скопировать неперемещаемый контейнер на архивнй случай?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Меньше Больше

  • Сообщений: 194
  • Спасибо получено: 25

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *