Службы сертификатов могут не запускаться на компьютере под управлением Windows Server 2003 или Windows 2000

В этой статье описывается решение проблемы, из-за которой службы сертификатов (CS) могут не запускаться на компьютере под управлением Windows Server 2003 или Windows 2000.

Область применения: Windows 10 — все выпуски, Windows Server 2012 R2
Оригинальный номер базы знаний: 842210

Симптомы

На компьютере под управлением Microsoft Windows Server 2003 или Microsoft Windows 2000 Server службы сертификатов могут не запускаться.

Кроме того, следующее сообщение об ошибке может быть зарегистрировано в журнале приложений в Просмотр событий.

Причина

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

Разрешение

Чтобы устранить эту проблему, убедитесь, что количество отпечатков сертификатов в реестре равно количеству сертификатов, выданных ЦС. Если отсутствуют какие-либо сертификаты, импортируйте отсутствующие сертификаты в хранилище персональных сертификатов локального компьютера. После импорта отсутствующих сертификатов используйте certutil -repairstore команду , чтобы восстановить связь между импортированными сертификатами и соответствующим хранилищем закрытых ключей.

Для этого используйте один из следующих методов в зависимости от того, какая версия операционной системы работает на компьютере.

Способ 1: Windows Server 2003

Чтобы устранить эту проблему на компьютере под управлением Windows Server 2003, выполните следующие действия.

Шаг 1. Поиск отсутствующих сертификатов

Важно!

В этот раздел, описание метода или задачи включены действия, содержащие указания по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому следует в точности выполнять приведенные инструкции. Для дополнительной защиты создайте резервную копию реестра, прежде чем редактировать его. Так вы сможете восстановить реестр, если возникнет проблема. Дополнительные сведения см. в статье Резервное копирование и восстановление реестра в Windows.

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

Чтобы найти отсутствующие сертификаты, выполните следующие действия.

  1. Нажмите кнопку Пуск, выберите Выполнить, введите regedit, а затем нажмите кнопку ОК.

  2. Найдите и выберите следующий подраздел: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\**Your_Certificate_Authority_Name*

  3. В правой области дважды щелкните CaCertHash.

  4. Запишите количество отпечатков сертификатов, содержащихся в списке данных значения .

  5. Запустите командную строку.

  6. Введите следующую команду и нажмите клавишу ВВОД: certutil -store

    Сравните количество сертификатов, перечисленных в хранилище персональных сертификатов локального компьютера, с числом отпечатков сертификатов, перечисленных в записи реестра CaCertHash. Если номера отличаются, перейдите к шагу 2. Импорт отсутствующих сертификатов. Если номера совпадают, перейдите к шагу 3. Установка пакета средств администрирования Windows Server 2003.

Шаг 2. Импорт отсутствующих сертификатов

  1. Выберите Пуск, Все программы, Администрирование и Сертификаты.

    Если сертификаты не отображаются в списке, выполните следующие действия:

    1. Нажмите кнопку Пуск, выберите Выполнить, введите mmc, а затем нажмите кнопку ОК.

    2. В меню Файл выберите Добавить или удалить оснастку.

    3. Нажмите Добавить.

    4. В списке оснастки выберите Сертификаты, а затем нажмите кнопку Добавить.

      Если откроется диалоговое окно Оснастка "Сертификаты ", выберите Моя учетная запись пользователя, а затем нажмите кнопку Готово.

    5. Выберите Закрыть, а затем — ОК.

      Каталог Certificates теперь добавлен в консоль управления Майкрософт (MMC).

    6. В меню Файл выберите Сохранить как, в поле Имя файла введите Сертификаты, а затем нажмите кнопку Сохранить.

      Чтобы открыть сертификаты в будущем, выберите Пуск, Все программы, Администрирование, а затем Сертификаты.

  2. Разверните узлы Сертификаты, Личные, Щелкните правой кнопкой мыши Сертификаты, наведите указатель на пункт Все задачи, а затем выберите Импорт.

  3. На странице приветствия нажмите кнопку Далее.

  4. На странице Импортируемый файл введите полный путь к файлу сертификата, который требуется импортировать, в поле Имя файла , а затем нажмите кнопку Далее. Вместо этого нажмите кнопку Обзор, найдите файл и нажмите кнопку Далее.

  5. Если файл, который требуется импортировать, является обменом персональными данными, — PKCS #12 (*. PFX) файл, вам будет предложено ввести пароль. Введите пароль и нажмите кнопку Далее.

  6. На странице Хранилище сертификатов нажмите кнопку Далее.

  7. На странице Завершение работы мастера импорта сертификатов нажмите кнопку Готово.

Примечание.

ЦС всегда публикует свои сертификаты ЦС в папке %systemroot%\System32\CertSvc\CertEnroll . В этой папке могут находиться отсутствующие сертификаты.

Шаг 3. Установка пакета средств администрирования Windows Server 2003

После импорта сертификатов необходимо использовать средство Certutil для восстановления связи между импортированными сертификатами и соответствующим хранилищем закрытых ключей. Средство Certutil входит в состав средств сертификации ЦС. Средства сертификации ЦС Windows Server 2003 находятся в пакете средств администрирования Windows Server 2003. Если средства сертификации сертификатов не установлены на компьютере, установите их сейчас.

После установки пакета средств администрирования Windows Server 2003 выполните следующие действия.

  1. Запустите командную строку.

  2. Введите следующее и нажмите клавишу ВВОД:
    cd %systemroot%\system32\certsrv\certenroll

  3. Запишите сертификат в папке Certenroll, который выглядит следующим образом: Your_Server. Your_Domain.com_rootca.crt

  4. Введите следующие команды и нажмите клавишу ВВОД после каждой команды: %systemroot%\system32\certutil -addstore my %systemroot%\system32\certsrv\certenroll\Your_Server.Your_Domain.com_rootca.crt%systemroot%\System32\certutil -dump %systemroot%\system32\certsrv\certenroll\Your_Server.Your_Domain.com_rootca.crtYour_Server.Your_Domain.com_rootca.crt — это имя сертификата в папке Certenroll, указанное на шаге 3.

  5. В выходных данных последней команды в конце вы увидите строку, похожую на следующую:
    Key Id Hash(sha1): ea c7 7d 7e e8 cd 84 9b e8 aa 71 6d f4 b7 e5 09 d9 b6 32 1b
    Данные хэша идентификатора ключа относятся к вашему компьютеру. Запишите эту строку.

  6. Введите следующую команду с кавычками и нажмите клавишу ВВОД:
    %systemroot%\system32\certutil -repairstore my "Key_Id_Hash_Data"

    В этой команде — это строка, Key_Id_Hash_Data указанная на шаге 4. Например, введите следующее:
    %systemroot%\system32\certutil -repairstore my "ea c7d 7d 7e e8 cd 84 9b e8 aa 71 6d f4 b7 e5 09 d9 b6 32 1b"

    Затем вы получите следующие выходные данные:

    CertUtil: команда -repairstore успешно завершена.

  7. Чтобы проверить сертификаты, введите следующую команду и нажмите клавишу ВВОД:
    %systemroot%\system32\certutil -verifykeys После выполнения этой команды вы получите следующие выходные данные:

    CertUtil: команда -verifykeys успешно завершена.

Шаг 5. Запуск службы сертификатов

  1. Нажмите кнопку Пуск, наведите указатель мыши на пункт Администрирование, а затем выберите Службы.
  2. Щелкните правой кнопкой мыши Службы сертификатов и выберите Пуск.

Способ 2: Windows 2000

Чтобы устранить эту проблему на компьютере под управлением Windows 2000, выполните следующие действия.

Шаг 1. Поиск отсутствующих сертификатов

Важно!

В этот раздел, описание метода или задачи включены действия, содержащие указания по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому следует в точности выполнять приведенные инструкции. Для дополнительной защиты создайте резервную копию реестра, прежде чем редактировать его. Так вы сможете восстановить реестр, если возникнет проблема. Дополнительные сведения см. в статье Резервное копирование и восстановление реестра в Windows.

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

Чтобы найти отсутствующие сертификаты, выполните следующие действия.

  1. Нажмите кнопку Пуск, выберите Выполнить, введите regedit, а затем нажмите кнопку ОК.

  2. Найдите и выберите следующий подраздел: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\**Your_Certificate_Authority_Name*

  3. В правой области дважды щелкните CaCertHash.

  4. Запишите количество отпечатков сертификатов, содержащихся в списке данных значения .

  5. Запустите командную строку.

  6. Введите следующее и нажмите клавишу ВВОД: certutil -store

Сравните количество сертификатов, перечисленных в хранилище персональных сертификатов локального компьютера, с числом отпечатков сертификатов, перечисленных в записи реестра CaCertHash. Если номера отличаются, перейдите к шагу 2. Импорт отсутствующих сертификатов. Если номера совпадают, перейдите к шагу 3. Установка пакета средств администрирования Windows Server 2003.

Шаг 2. Импорт отсутствующих сертификатов

  1. Нажмите кнопку Пуск, наведите указатель на пункт Программы, а затем — Администрирование, а затем — Сертификаты.

    Если сертификаты не отображаются в списке, выполните следующие действия:

    1. Нажмите кнопку Пуск, выберите Выполнить, введите mmc, а затем нажмите кнопку ОК.
    2. В меню Консоль выберите Добавить или удалить оснастку.
    3. Выберите Добавить.
    4. В списке оснастки выберите Сертификаты, а затем нажмите кнопку Добавить.

    Если откроется диалоговое окно Оснастка "Сертификаты ", выберите Моя учетная запись пользователя, а затем нажмите кнопку Готово. 5. Нажмите кнопку Закрыть. 6. Нажмите кнопку ОК. 7. Каталог Certificates теперь добавлен в консоль управления Майкрософт (MMC). 8. В меню Консоль выберите Сохранить как, введите Сертификаты в качестве имени файла, а затем нажмите кнопку Сохранить.

    Чтобы открыть сертификаты в будущем, нажмите кнопку Пуск, выберите Программы, Администрирование, а затем Сертификаты.

  2. Разверните узлы Сертификаты, Личные, Щелкните правой кнопкой мыши Сертификаты, наведите указатель на пункт Все задачи, а затем выберите Импорт.

  3. На странице приветствия нажмите кнопку Далее.

  4. На странице Импортируемый файл введите полный путь к файлу сертификата, который требуется импортировать, в поле Имя файла , а затем нажмите кнопку Далее. Вместо этого нажмите кнопку Обзор, найдите файл и нажмите кнопку Далее.

  5. Если файл, который требуется импортировать, является обменом персональными данными, — PKCS #12 (*. PFX), вам будет предложено ввести пароль. Введите пароль и нажмите кнопку Далее.

  6. На странице Хранилище сертификатов нажмите кнопку Далее.

  7. На странице Завершение работы мастера импорта сертификатов нажмите кнопку Готово.

Примечание.

ЦС всегда публикует свои сертификаты ЦС в папке %systemroot%\System32\CertSvc\CertEnroll . В этой папке могут находиться отсутствующие сертификаты.

Шаг 3. Установка средств Certutil для Windows Server 2003

После импорта сертификатов необходимо использовать средства сертификатов ЦС Windows Server 2003, чтобы восстановить связь между импортированными сертификатами и соответствующим хранилищем закрытых ключей.

Версии windows Server 2003 Certutil.exe и Certreq.exe включены в пакет средств администрирования Windows Server 2003. Чтобы установить средства на компьютере под управлением Windows 2000, необходимо сначала установить пакет средств администрирования Windows Server 2003 на компьютере под управлением Windows Server 2003 или Microsoft Windows XP с пакетом обновления 1 (SP1) или с пакетом обновления более поздней версии. Пакет средств администрирования Windows Server 2003 нельзя установить непосредственно на компьютере под управлением Windows 2000.

Важно!

После копирования средств сертификатов ЦС Windows Server 2003 на компьютер под управлением Windows 2000 на компьютере под управлением Windows 2000 на компьютере под управлением Windows 2000 будут находиться две версии средства Certutil. Не удаляйте средство Windows 2000 Certutil. Другие программы зависят от версии этого средства для Windows 2000. Например, для оснастки MMC "Сертификаты" требуется средство Windows 2000 Certutil. Кроме того, не регистрируйте файлы windows Server 2003 Certcli.dll и Certadm.dll на компьютере под управлением Windows 2000.

Чтобы использовать средства сертификации ЦС Windows Server 2003 на компьютере под управлением Windows 2000, выполните следующие действия.

  1. Скачивание пакета средств администрирования Windows Server 2003

  2. Войдите на компьютер под управлением Windows Server 2003 или Windows XP с пакетом обновления 1 (SP1) или более поздней версии.

  3. Установите пакет средств администрирования Windows Server 2003.

  4. В пакете средств администрирования Windows Server 2003 найдите следующие файлы, а затем скопируйте их на съемный носитель, например на 3,5-дюймовый диск:
    Certreq.exe
    Certutil.exe
    Certcli.dll
    Certadm.dll

  5. Войдите на компьютер под управлением Windows 2000 с правами администратора.

  6. Вставьте съемный носитель, который использовался на шаге 4, в соответствующий диск компьютера под управлением Windows 2000.

  7. Запустите командную строку.

  8. Создайте новую папку, а затем скопируйте файлы на съемном носителе в новую папку. Для этого введите следующие команды и нажмите клавишу ВВОД после каждой команды:
    Cd\
    md W2k3tool
    cd w2k3tool
    скопируйте Removable_Media_Drive_Letter:\cert*

    Примечание.

    Чтобы избежать конфликтов с версиями windows 2000 средства Certutil, которые уже находятся на компьютере, не включайте папку W2k3tool в путь поиска системы.

После копирования файлов windows Server 2003 CA Certificate Tools на компьютер под управлением Windows 2000 выполните следующие действия.

  1. Запустите командную строку.

  2. Введите следующее и нажмите клавишу ВВОД:
    cd %systemroot\system32\certsrv\certenroll

  3. Запишите сертификат в папке Certenroll, который выглядит следующим образом:
    Your_Server.Your_Domain.com_rootca.crt

  4. Введите следующие команды и нажмите клавишу ВВОД после каждой команды:
    Root_Drive_Letter:\w2k3tool\certutil -addstore my %systemroot%\system32\certsrv\certenroll\ Your_Server.Your_Domain.com_rootca.crt
    Root_Drive_Letter:\w2k3tool\certutil -dump %systemroot%\system32\certsrv\certenroll\ Your_Server.Your_Domain.com_rootca.crt

    Root_Drive_Letter — это буква корневого каталога.

    Your_Server.Your_Domain.com_rootca.crt — это имя сертификата в папке Certenroll, указанное на шаге 3.

  5. В выходных данных последней команды в конце вы увидите строку, похожую на следующую: Key Id Hash(sha1): ea c7 7d 7e e8 cd 84 9b e8 aa 71 6d f4 b7 e5 09 d9 b6 32 1b
    Данные хэша идентификатора ключа относятся к вашему компьютеру. Запишите эту строку.

  6. Введите следующую команду, включая кавычки, и нажмите клавишу ВВОД:
    Root_Drive_Letter:\w2k3tool\certutil -repairstore my "Key_Id_Hash_Data"
    В этой команде — это строка, Key_Id_Hash_Data указанная на шаге 5. Например, введите следующее:
    c:\w2k3tool\certutil -repairstore my "ea c7 7d 7e e8 cd 84 9b e8 aa 71 6d f4 b7 e5 09 d9 b6 32 1b"

    После выполнения этой команды вы получите следующие выходные данные:

    CertUtil: команда -repairstore успешно завершена.

  7. Чтобы проверить сертификаты, введите следующую команду и нажмите клавишу ВВОД:
    Root_Drive_Letter:\w2k3tool\certutil -verifykeys

    После выполнения этой команды вы получите следующие выходные данные:

    CertUtil: команда -verifykeys успешно завершена.

Шаг 5. Запуск службы сертификатов

  1. Нажмите кнопку Пуск, наведите указатель мыши на пункт Администрирование, а затем выберите Службы.
  2. Щелкните правой кнопкой мыши Службы сертификатов и выберите Пуск.

Дополнительная информация

Необходимо выпустить из эксплуатации и заменить ЦС, если выполняется одно из следующих условий:

  • Вы не можете найти отсутствующие сертификаты.

  • Невозможно переустановить сертификаты.

  • Не certutil -repairstore удается выполнить команду, так как закрытые ключи удалены. Чтобы вывести из эксплуатации и заменить ЦС, выполните следующие действия.

    1. Отмена сертификатов для ЦС, который перестал работать правильно. Для этого выполните следующие действия:

      1. Войдите с правами администратора на компьютер, который выдал сертификаты, которые требуется отозвать.
      2. Выберите Пуск, программы, Администрирование, а затем Центр сертификации.
      3. Разверните узел CA_Name, а затем выберите Выданные сертификаты.
      4. В правой области выберите сертификат, который требуется отозвать.
      5. В меню Действие наведите указатель мыши на пункт Все задачи, а затем выберите Отозвать сертификат.
      6. В списке Код причины выберите причину отзыва сертификата и нажмите кнопку Да.

      Это приведет к отмене всех сертификатов, выданных ЦС, которые перестали работать правильно.

    2. Опубликуйте список отзыва сертификатов (CRL) в ЦС следующего уровня. Для этого выполните следующие действия:

      1. Войдите с правами администратора на компьютер, на котором работает следующий самый высокий ЦС.
      2. Выберите Пуск, программы, Администрирование, а затем Центр сертификации.
      3. Разверните узел CA_Name, а затем выберите Отозванные сертификаты.
      4. В меню Действие наведите указатель мыши на пункт Все задачи, а затем выберите Опубликовать.
      5. Выберите Да , чтобы перезаписать ранее опубликованный список отзыва сертификатов.
    3. Если ЦС, который перестал работать правильно, был опубликован в службах Active Directory Directory Directory, удалите его. Чтобы удалить ЦС из Active Directory, выполните следующие действия.

      1. Запустите командную строку.
      2. Введите следующее и нажмите клавишу ВВОД:
        certutil -dsdel CA_Name
    4. Удалите службы сертификатов с сервера, на котором ЦС перестал работать правильно. Для этого выполните следующие действия:

      1. Нажмите кнопку Пуск, наведите указатель на пункт Параметры, а затем выберите панель управления.
      2. Дважды щелкните Добавить и удалить программы, а затем выберите Добавить и удалить компоненты Windows.
      3. В списке Компоненты снимите флажок Службы сертификатов проверка, нажмите кнопку Далее, а затем нажмите кнопку Готово.
    5. Установите службы сертификатов. Для этого выполните следующие действия:

      1. Выберите Добавить и удалить компоненты Windows.
      2. В списке Компоненты выберите, чтобы выбрать проверка Службы сертификатов, нажмите кнопку Далее, а затем нажмите кнопку Готово.
    6. Все пользователи, компьютеры или службы с сертификатами, выданными ЦС, который перестал работать правильно, должны зарегистрироваться для получения сертификатов из нового ЦС.

Примечание.

Если эта проблема возникает в корневом ЦС иерархии инфраструктуры открытых ключей (PKI) и если ее не удается устранить, потребуется заменить всю иерархию PKI. Дополнительные сведения об удалении иерархии PKI см. в статье Вывод из эксплуатации корпоративного центра сертификации Windows и удаление всех связанных объектов.