Hello
I have two Windows Server 2008 R2 Servers. One is a domain controller and also hosts the certification authority and the other is a member server.
I have the web enrollment on the domain controller and this works fine.
I then tried to install the web enrollment onto the other server so that it would be avilable over the internet (mainly in order to be able to provide instructions on how to download the CA root cert.
However while I can access it internally using http://server/certsrv I cannot get it to work if I access it externally or internally if I use the FQDN.
While I can still login and access the page I cannot download a CA certificate or request a certificate.
I can however use the FQDN of the server hosting the CA and that will still work.
No firewalls are enabled between the servers and port 80 and 443 are forwarded to the server where I am trying to get the web enrolment to work.
I can install a whole new subordinate CA onto the secondary server and this works externally and using the FQDN as well but this defeats the purpose as I want to use it for people to download the CA certificate but all they can get is the subordinate CA certificate which still doesn’t enable trust.
This makes me think that delegation isn’t working properly or I am missing something obvious!
Clicking on «Download a CA certificate, certificate chain, or CRL» results in:Trying to request a user certificate results in:What I have tried:
I have tried re-installing the web enrollment but it didn’t help.
I have tried giving delegation permissions to the server (right-click in ADUC and click properties and the delegation tab and choose «Trust this computer to delegation to any service»).
I have looked at the permissions for CertSrv Request and tried changing a few (giving everyone rights to lauch and activation etc)
Neither of these made any difference though.
I’m not sure what to try.
Both servers are relatively new installs (few weeks).
I have found a few similar problems on the internet which go back as far as Windows 2000 Server but I just can’t seem to get this working.
Thanks for any help.
Robin
An unexpected error has occurred: The Certification Authority Service has not been started.
Your request failed. An error occurred while the server was processing your request. Contact your administrator for further assistance. Request Mode: newreq - New Request Disposition: (never set) Disposition message: (none) Result: The RPC server is unavailable. 0x800706ba (WIN32: 1722) COM Error Info: CCertRequest::Submit: The RPC server is unavailable. 0x800706ba (WIN32: 1722) LastStatus: The operation completed successfully. 0x0 (WIN32: 0) Suggested Cause: This error can occur if the Certification Authority Service has not been started.
Robin Wilson
Hello
I have two Windows Server 2008 R2 Servers. One is a domain controller and also hosts the certification authority and the other is a member server.
I have the web enrollment on the domain controller and this works fine.
I then tried to install the web enrollment onto the other server so that it would be avilable over the internet (mainly in order to be able to provide instructions on how to download the CA root cert.
However while I can access it internally using http://server/certsrv I cannot get it to work if I access it externally or internally if I use the FQDN.
While I can still login and access the page I cannot download a CA certificate or request a certificate.
I can however use the FQDN of the server hosting the CA and that will still work.
No firewalls are enabled between the servers and port 80 and 443 are forwarded to the server where I am trying to get the web enrolment to work.
I can install a whole new subordinate CA onto the secondary server and this works externally and using the FQDN as well but this defeats the purpose as I want to use it for people to download the CA certificate but all they can get is the subordinate CA certificate which still doesn’t enable trust.
This makes me think that delegation isn’t working properly or I am missing something obvious!
Clicking on «Download a CA certificate, certificate chain, or CRL» results in:Trying to request a user certificate results in:What I have tried:
I have tried re-installing the web enrollment but it didn’t help.
I have tried giving delegation permissions to the server (right-click in ADUC and click properties and the delegation tab and choose «Trust this computer to delegation to any service»).
I have looked at the permissions for CertSrv Request and tried changing a few (giving everyone rights to lauch and activation etc)
Neither of these made any difference though.
I’m not sure what to try.
Both servers are relatively new installs (few weeks).
I have found a few similar problems on the internet which go back as far as Windows 2000 Server but I just can’t seem to get this working.
Thanks for any help.
Robin
An unexpected error has occurred: The Certification Authority Service has not been started.
Your request failed. An error occurred while the server was processing your request. Contact your administrator for further assistance. Request Mode: newreq - New Request Disposition: (never set) Disposition message: (none) Result: The RPC server is unavailable. 0x800706ba (WIN32: 1722) COM Error Info: CCertRequest::Submit: The RPC server is unavailable. 0x800706ba (WIN32: 1722) LastStatus: The operation completed successfully. 0x0 (WIN32: 0) Suggested Cause: This error can occur if the Certification Authority Service has not been started.
Robin Wilson
В этой статье я рассмотрю следующие темы о тонкостях и лучших практиках для реализации PKI от Microsoft — Active Directory Certificate Services:
- Общие представления о PKI
- Автоматический запрос сертификатов
- Ручная установка сертификата корневого ЦС
- Проверка отзыва сертификатов
- Веб-службы регистрации сертификатов
- Запрос сертификата с альтернативным именем
- Обобщенные лучшие практики
- Полезные ссылки
Общие представления о PKI
Чем более интегрированной, сложной и защищенной становится инфраструктура на Windows Server, тем больше она полагается в добавок к традиционной Active Directory на PKI (Public Key Infrastructure, переводят как инфраструктура открытого ключа) для обеспечения доверительных отношений и проверки подлинности между компьютерами, пользователями и службами. Active Directory Certificate Services — это реализация PKI от Microsoft, которая состоит из следующих элементов:
- Центр сертификации (ЦС, Certification Authority), корневой и подчиненные
- отношения всеобщего доверия к ЦС
- выдаваемые ЦС сертификаты для компьютеров, пользователей и служб
- различные службы поддержки PKI
- списки отзывов сертификатов (CRL)
- сетевой ответчик (Online Responder, более прогрессивная альтернатива CRL)
- Web Enrollment (средство запроса сертификатов через Web)
Автоматический запрос сертификатов
От центра сертификации нет толку, если клиентские компьютеры в вашей сети не имеют к нему доверия и/или не получают сертификаты. При установке ЦС в домене Active Directory по умолчанию должны создаваться групповые политики, которые прописывают доверие клиентов к корневому ЦС и автоматический запрос сертификатов компьютера у него. Однако, при некоторых сценариях эти политики необходимо настраивать вручную и в этом поможет статья TechNet Configure Computer Certificate Autoenrollment.
Ручная установка сертификата корневого ЦС
Если в среде Active Directory и локальной сети доверие к корневому центру сертификации настраивается автоматически, то для доверия к ЦС со стороны недоменных удаленных компьютеров необходимо установить сертификат ЦС в их хранилище Доверенные корневые центры сертификации. Иначе либо будут выдаваться предупреждения о потенциальной опасности подписанного неизвестно кем сертификата, либо вообще соединения с таким сервером будут отклонятся, как, например, в случае с Remote Desktop Services Gateway будет выдаваться такая ошибка:
Компьютеру не удаётся проверить удостоверение шлюза удалённых рабочих столов «server.argon.com.ru». Подключаться к серверам без удостоверений небезопасно.
This computer can’t verify the identity of the RD «server.argon.com.ru». It’s not safe to connect to servers that can’t be identified.
Этот сертификат не удалось проверить, проследив его до доверенного центра сертификации
Нужно учесть, что сертификат вашего корневого ЦС нужно устанавливать не в хранилище текущего пользователя, а в хранилище локального компьютера, так как только его содержимое действует на всех пользователей и системные учетные записи. Существует несколько способов добавить сертификат ЦС в хранилище локального компьютера.
Через MMC
Открыть MMC с правами администратора » добавить оснастку Сертификаты » выбрать в качестве области Локальный компьютер » импортировать нужный сертификат в хранилище Доверенные корневые центры сертификации. Более подробно в статье TechNet Manage Trusted Root Certificates.
Через свойства сертификата
Запустить командную строку с правами админа » вызвать в ней с:pathtocert.crt
» откроется окно свойств сертификата » нажать кнопку Установить » отметить галку Показывать физические хранилища » выбрать хранилище для установки сертификата Доверенные корневые центры сертификации » Локальный компьютер.
Через командную строку
Потребуется утилита CertMgr, с помощью нее нужно выполнить следующую команду:
certmgr.exe -add -c «с:pathtocert.crt» -s -r localMachine root
Проверка отзыва сертификатов
Некоторые сетевые службы (удаленные рабочие столы, DirectAccess, L2TP и SSTP VPN), которые используют сертификаты для проверки подлинности сервера, требуют проверки этих сертификатов на легитимность (но отозваны ли они центром сертификации). В окружении локальной сети с такими проверками проблем не возникает, так как списки отзыва сертификатов опубликованы в Active Directory и по локальным адресам центра сертификации.
Ситуация меняется, если легитимность сертификата пытаются проверить из интернета, где, естественно, ни Active Directory, ни локальные адреса центров сертификации не доступны. И самое неприятное в том, что доверие системы к сертификату, выданному доверенным центром, но не проверенному на легитимность, еще ниже, чем к неизвестному или самоподписанному. Например соединение с удаленным рабочим столом отклоняется, выдавая ошибку:
Не удалось проверить, не был ли отозван этот сертификат.
A revocation check could not be perfomed for the certificate.
Для решения проблемы доступности проверки отзыва сертификатов из интернета необходимо опубликовать любую из следующих служб:
- CRL (Certificate Revocation List, список отзыва сертификатов) на веб-сервере, регулярно обновляемый
- Online Responder (сетевой ответчик, доступный начиная с Windows Server 2008 редакции Enterprise), который функционирует примерно также, как и предыдущий вариант, но по более прогрессивному протоколу OCSP (но через HTTP)
Для работы обоих вариантов необходимо, чтобы в центре сертификации были заблаговременно настроены доступные из интернета адреса этих служб, так как эти адреса жестко прописываются в каждом выдаваемом сертификате.
За инструкциями по настройки ЦС для размещения CRL в интернете обращайтесь к статье TechNet Configuring Certificate Revocation. От себя лишь замечу хитрость: если ваш домен имеет доступное из интернета DNS-имя (то есть argon.com.ru, а не argon.local), а на сервер с корневым ЦС установлена опция Web Enrollment, то ЦС уже настроен на публикацию своих CRL по адресу http://server.argon.com.ru/CertEnroll. Поэтому для полноценной работы CRL достаточно просто опубликовать в интернете порт HTTP по доменному имени server.argon.com.ru.
Настройка и публикация Online Responder немного сложнее, но подробно описана в статьях TechNet Online Responder и Setting Up Online Responder Services in a Network. Тут уже никаких хитростей и настроек по умолчанию нет, честно устанавливаете роль на нужный сервер, конфигурируете эту роль, публикуете HTTP-сайт в интернете и настраиваете ЦС на включение информации об Online Responder’e в публикуемые сертификаты.
Проверить правильность функционирования проверки отзыва (CRL или OCSP) любого сертификата можно с помощью следующей команды:
certutil -url name.cer
где name.cer — имя выданного сертификата.
Следует иметь ввиду, что проверка отзыва по протоколу OCSP проходит успешно только в том случае, если сертификат ЦС, выдавшего проверяемый сертификат, установлен в хранилище доверенных сертификатов локального компьютера.
Веб-службы регистрации сертификатов
Они же Certificate Enrollment Web Services, если по-английски. Весьма полезная роль, которая позволяет:
- запрашивать сертификаты пользователями без участия администратора
- предоставлять по требованию сертификат корневого ЦС
- выполнять особые уже подготовленные запросы (Custom Request), например для веб-серверов под управлением Linux или других сетевых устройств
- делать это все через интернет
- сам Web Enrollment может работать на отличном от ЦС компьютере, что повышает безопасность корневого ЦС
Установка и настройка Web Enrollment проста и тривиальна за исключением следующих моментов
- в случае установки Web Enrollment на отличный от ЦС компьютер, необходимо обязательно выполнить шаги, описанные в статье TechNet Configuring Delegation Settings for the Certificate Enrollment Web Service Account, иначе служба не будет работать, выдавая следующую ошибку:
Произошла непредвиденная ошибка: Служба центра сертификации (ЦС) не запущена.
An unexpected error has occurred: The Certification Authority Service has not been started.
- та же ошибка будет выдаваться, если Web Enrollment работает на одном сервере с ISA Server / Forefront TMG, в их системных правилах нужно отключить Enforce strict RPC compliance и разрешить протокол RPC во внутреннюю сеть.
- при публикации Web Enrollment в интернете необходимо включить требование работы через SSL для веб-приложения CertSrv в консоли IIS
Запрос сертификата с альтернативным именем
Насущный вопрос при публикации внутренних служб предприятия в интернете — создание сертификатов со списком альтернативных имен DNS (Subject Alternative Name, SAN).
По умолчанию ЦС на Windows Server не настроен на выдачу сертификатов, содержащих SAN. Чтобы включить эту функцию на компьютере с ЦС нужно выполнить:
certutil -setreg policyEditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2
net stop certsvc
net start certsvc
Запрос через консоль MMC
Начиная с Windows Server 2008 появилась возможность запросить сертификат с SAN через MMC-консоль Сертификаты, для этого…
- В консоли управления ЦС для шаблона сертификата Веб-сервер назначить права на запрос и чтение для учетки компьютера, запрашивающего сертификат.
- Компьютер, с которого создается запрос, должен входить в домен, в котором опубликован ЦС
- Создать запрос по шаблону веб-сервера → в свойствах запроса указать список альтернативных DNS-имен на вкладке Субъект → Дополнительное имя → DNS.
Запрос через утилиту certreq
Более гибким и универсальным способом запроса сертификатов с SAN является следующий, использующий утилиту certreq. Чтобы создать сертификат нужно действовать по следующему алгоритму:
1. Подготовить текстовый файл request.inf запроса сертификата со следующим содержанием.
[Version]
Signature=»$Windows NT$»
[NewRequest]
Subject = «CN=server.argon.local, OU=IT, O=Argon, L=Kirov, S=Kirovskaya, C=RU»
KeySpec = 1
KeyLength = 2048
HashAlgorithm = SHA256
Exportable = TRUE
MachineKeySet = TRUE
SMIME = FALSE
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
RequestType = PKCS10
KeyUsage = 0xa0
ProviderName = «Microsoft RSA SChannel Cryptographic Provider»
FriendlyName = «server.argon.local with SAN»
[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1 ; Server Authentication
[RequestAttributes]
CertificateTemplate = WebServer
[Extensions]
2.5.29.17 = «{text}»
_continue_ = «DNS=*.argon.com.ru&»
_continue_ = «DNS=argon.com.ru&»
_continue_ = «DNS=server.argon.local&»
_continue_ = «DNS=server&»
_continue_ = «DNS=localhost»
2. На машине, для которой предполагается запрашивается сертификат, выполнить команду
certreq -new request.inf
Нам предложат сохранить подготовленный файл запроса в формате .req. Одновременно с этим в хранилище сертификатов компьютера будет сохранен закрытый ключ для будущего сертификата.
3. Отправить запрос центру сертификации и получить в ответ .cer файл. Для этого можно воспользоваться MMC-конcолью управления Certification Authority (и указать .req файл) либо Web Enrollment (в окно расширенного запроса вставить содержимое .req файла и выбрать шаблон веб-сервера).
4. Выполнить установку полученного сертификата на целевой компьютер следующей командой
certreq -accept request.cer
5. PROFIT. В результате описанных действий в хранилище сертификатов компьютера будет создан сертификат с закрытым ключом, пригодный для авторизации сервера по нескольким именами, прописанным .inf файле.
Обобщенные лучшие практики
Приведу пример рациональной реализации PKI на предприятии для поддержки передовых служб Windows Server 2008 R2
- На контроллере домена развернут корневой центр сертификации
- Если организации велика, то создано несколько подчиненных ЦС, выделенных для определенных целей (по назначению сертификата, по филиалу организации, для распределения нагрузки…)
- В групповых политиках настроено доверие к корневому ЦС и автоматический запрос сертификатов доменный компьютеров
- На пограничном компьютере-члене домена развернуты и опубликованы с помощью Forefront TMG в интернете службы:
- Web Enrollment для установки сертификата ЦС и запроса личных сертификатов с недоменных компьютеров
- Online Responder для проверки отзыва сертификатов по протоколу OCSP
- Опубликованы в интернете с использованием сертификатов с SAN следующие сетевые службы, опирающиеся на использование сертификатов и проверку их отзыва:
- Remote Desktop Gateway
- Outlook Web Access
- DirectAccess
- SharePoint
Полезные ссылки
- PKI предприятия
- How to configure the Windows Server 2008 CA Web Enrollment Proxy
- How to add a Subject Alternative Name to a secure LDAP certificate
- How to Request a Certificate With a Custom Subject Alternative Name
- Устанавливаем Certification Authority — Vadims Podans’s blog
- OCSP (часть 1), OCSP (часть 2) — Vadims Podans’s blog
- Remove From My Forums
-
Вопрос
Ответы
-
Победил публикацию через инет, никаких хитростей в TMG настраивать не пришлось, работает от любого имени.
Что было сделано
- Для компа с CA Web Enroll включено делегирование на все протоколы аутентификации, сервисы prcss и HOST на комп c CA
- Создан в IIS AppPool, работающий от имени NetworkService, этот пул был назначен для приложения CertSrv
- В разделе CertSrv > Authentication была включен пункт Basic Auth, а в свойcтвах Windows Auth был отключен Kernel-mode auth
- В advanced свойствах приложения CertSrv свойтсов LogonType было переключено с Network на ClearText
- Перезапуск IIS через команду iisreset, релогин на комп с CA Web Enroll
Так как basic auth посылает логин/пароль в виде открытого текста, естественно, используется SSL.
MCITP: Enterprise Administrator, MCSA
-
Помечено в качестве ответа
19 апреля 2010 г. 6:56
-
Почитал приведённые вами ссылки и понял откуда ростут ноги у этой ошибки — при попытке скачать корневой сертификат/цепочку/CRL. Верно:)?
В общем, в учётной записи вашего Web-сервера настройте ограниченное делегирование на SPN’ы HOST и rpcss, вашего CA/контроллера домена. На самом Web-сервере в настройках пула, в котором работает приложение CertSrv выберите NetworkService, а в настройках аутентификации приложения включите интегрированную аутентификацию и выключите ядерную аутентификацию. Перезапустите IIS, перезайдите на рабочей станции, чтоб настройка делегирования заработала и всё должно получиться…
-
Помечено в качестве ответа
Argon.proMicrosoft employee
16 апреля 2010 г. 21:39
-
Помечено в качестве ответа
Службы сертификации Active Directory (Microsoft)
Ошибка
Не удалось выполнить ваш запрос. При обработке вашего запроса сервером произошла ошибка.
Обратитесь к системному администратору за помощью.
Режим запроса:
newreq – Новый запрос
Назначение:
(еще не установлено)
Сообщение о назначении:
(нет)
Результат:
Сервер RPC недоступен. 0x800706ba (WIN32: 1722)
Сведения о COM-ошибке:
CCertRequest::Submit: Сервер RPC недоступен. 0x800706ba (WIN32: 1722)
Последнее состояние:
Операция успешно завершена. 0x0 (WIN32: 0)
Предполагаемая причина:Эта ошибка может произойти, если служба центра сертификации не запущена.
Возможны так же различные глюки и зависания при заходе на https://sever/certsvc
также может проявлятся в виде бесконечных попыток загрузить ActiveX,
возможно при заходе на сайт сертификации выдача ошибки ERROR 401
Лечение:
- добавить контроллеры домена в группу: CERTSVC_DCOM_ACCESS
- Перезагрузить контроллеры домена (обязательно)
Помимио контроллеров домена туда же ( в CERTSVC_DCOM_ACCESS) входят два группы:
- Компьютеры домена (Domain Computers)
- Пользователи домена (Domain Users)
Область действия группы CERTSVC_DCOM_ACCESS: локальная в домене
Тип группы CERTSVC_DCOM_ACCESS: безопасность
Форум КриптоПро
»
КриптоПро УЦ
»
КриптоПро УЦ 1.5
»
Ошибка запуска службы сертификации Active Directory
![]() BlackRaven |
|
Статус: Активный участник Группы: Участники Сказал «Спасибо»: 3 раз |
Добрый день. «Не удается найти указанный файл. Модуль политики отсутствует или неправильно зарегистрирован…» Что можно сделать? Отредактировано пользователем 12 августа 2015 г. 12:13:43(UTC) |
![]() |
WWW |
![]() Molostvov |
|
Статус: Сотрудник Группы: Участники Сказал(а) «Спасибо»: 2 раз |
Добрый день. |
![]() |
|
![]() BlackRaven |
|
Статус: Активный участник Группы: Участники Сказал «Спасибо»: 3 раз |
Автор: Molostvov Добрый день. Служба сертификации в службах есть. Падают две ошибки: то что службы AD не запущены и что невозможно найти указанный файл. В модулях политик ЦС отсутствует модуль политик КриптоПро УЦ. Отредактировано пользователем 12 августа 2015 г. 12:35:18(UTC) |
![]() |
WWW |
![]() Molostvov |
|
Статус: Сотрудник Группы: Участники Сказал(а) «Спасибо»: 2 раз |
Что в ветке реестра [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesCertSvc] ? Можете отправить в личку. |
![]() |
|
![]() Molostvov |
|
Статус: Сотрудник Группы: Участники Сказал(а) «Спасибо»: 2 раз |
А вот увидел «В модулях политик ЦС отсутствует модуль политик КриптоПро УЦ.» |
![]() |
|
![]() BlackRaven |
|
Статус: Активный участник Группы: Участники Сказал «Спасибо»: 3 раз |
Автор: Molostvov А вот увидел «В модулях политик ЦС отсутствует модуль политик КриптоПро УЦ.» Сам центр сертификации установлен. Собственно при запуске службы ЦС ошибка и появляется. Внутри самого ЦС в свойствах на вкладке «Модуль политик» не получается выбрать ничего кроме «Стандартная Windows» Отредактировано пользователем 12 августа 2015 г. 13:16:34(UTC) |
![]() |
WWW |
![]() Molostvov |
|
Статус: Сотрудник Группы: Участники Сказал(а) «Спасибо»: 2 раз |
Переустановите компонент КриптоПро УЦ «Центр Сертификации» |
![]() |
|
|
BlackRaven
оставлено 27.08.2015(UTC) |
![]() BlackRaven |
|
Статус: Активный участник Группы: Участники Сказал «Спасибо»: 3 раз |
Автор: Molostvov Переустановите компонент КриптоПро УЦ «Центр Сертификации» Переустанавливать поверх или с удалением и последующей установкой? |
![]() |
WWW |
![]() Molostvov |
|
Статус: Сотрудник Группы: Участники Сказал(а) «Спасибо»: 2 раз |
Удалить/Установить |
![]() |
|
![]() BlackRaven |
|
Статус: Активный участник Группы: Участники Сказал «Спасибо»: 3 раз |
Автор: Molostvov Удалить/Установить Модуль появился, служба запустилась! |
![]() |
WWW |
Пользователи, просматривающие эту тему |
Guest |
Форум КриптоПро
»
КриптоПро УЦ
»
КриптоПро УЦ 1.5
»
Ошибка запуска службы сертификации Active Directory
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Я перенес свой центр сертификации корпоративных служб Active Directory на новый сервер (и с Windows 2003 R2 x86 на Windows 2008 R2 x64). У меня были проблемы с проверкой списков отзыва сертификатов, но я переиздал списки отзыва из корневого центра сертификации, и когда я запускаю certutil -urlfetch -verify, я больше не получаю никаких ошибок:
Verified Issuance Policies: None
Verified Application Policies: All
Cert is a CA certificate
Leaf certificate revocation check passed
CertUtil: -verify command completed successfully.
Но я все еще получаю те же ошибки при попытке запустить CA. Я получаю следующее всплывающее окно:
Microsoft Active Directory Certificate Services
---------------------------
The system cannot find the file specified. 0x2 (WIN32: 2)
The policy module for a CA is missing or incorrectly registered. To view or change
policy module settings, right-click on the CA, click Properties, and then click the
Policy Module tab.
---------------------------
OK
и я получаю следующую ошибку в журнале:
Log Name: Application
Source: Microsoft-Windows-CertificationAuthority
Date: 26/06/2012 15:59:45
Event ID: 100
Task Category: None
Level: Error
Keywords: Classic
User: SYSTEM
Computer: SRV112.cobbsch.cobbetts.co.uk
Description:
Active Directory Certificate Services did not start: Could not load or verify the current CA certificate. Cobbetts LLP Enterprise CA The system cannot find the file specified. 0x80070002 (WIN32: 2).
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-CertificationAuthority" Guid="{6A71D062-9AFE-4F35-AD08-52134F85DFB9}" EventSourceName="CertSvc" />
<EventID Qualifiers="49754">100</EventID>
<Version>0</Version>
<Level>2</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2012-06-26T14:59:45.000000000Z" />
<EventRecordID>852</EventRecordID>
<Correlation />
<Execution ProcessID="0" ThreadID="0" />
<Channel>Application</Channel>
<Computer>SRV112.cobbsch.cobbetts.co.uk</Computer>
<Security UserID="S-1-5-18" />
</System>
<EventData Name="MSG_E_CA_CERT_INVALID">
<Data Name="CACommonName">Cobbetts LLP Enterprise CA</Data>
<Data Name="ErrorCode">The system cannot find the file specified. 0x80070002 (WIN32: 2)</Data>
</EventData>
</Event>
У Microsoft есть документация по этой ошибке: http://technet.microsoft.com/en-us/library/cc774550(v=ws.10).aspx
Но документация просто говорит о том, что цепочка ЦС не проверяется, что и есть сейчас.
Мне было интересно, был ли это какой-то сбой в кэше или копия неверного CRL в кэше (ранее я перенес корневой CA и мне пришлось повторно опубликовать CRL, прежде чем certutil проверит правильность), поэтому я попытался перезагрузить компьютер, чтобы очистить его. тайники
Это ничего не изменило.
Я также попытался запустить Certutil как SYSTEM, чтобы увидеть, была ли проблема с разрешениями, и это тоже не решило проблему.
[Для запуска в качестве системы: запустите psexec -i -s cmd.exe из командной строки с повышенными правами, и она запустится как системная. Вы можете запустить Whoami, чтобы проверить.]
2012-06-26 15:29
5
ответов
Решение
Я решил эту проблему с поддержкой Microsoft, но я не совсем понял, что они сделали, чтобы решить эту проблему.
Откопайте заметки о поддержке Microsoft, в надежде, что они кому-нибудь пригодятся:
- Мы обнаружили, что CRL в папке certenroll отсутствует для проверки статуса отзыва из корневого центра сертификации.
- Мы скопировали CRL из промежуточного ЦС в выдающий суб-ЦС, но все равно получили ошибку.
- По словам инженера команды отладки мы удалили и переустановили роли ADCS, но это не помогло.
- Наконец, мы нашли в HKLMsystemCurrentControlSetServicesCertsvc Registry Registry CertHash были более старые значения для сертификатов с истекшим сроком действия.
- Удалил старые значения хэшей, заменил их знаками (-) и запустил службу сертификации.
- Служба сертификации запущена успешно.
2012-07-29 07:34
У меня была такая же ошибка. Я использовал аппаратный модуль безопасности от nCipher. ADCS не смог получить доступ к своему секретному ключу. Похоже, что при запуске службы ADCS это делает некоторый тест среди тех, кто проверяет закрытый ключ. Итак, я настроил свой HSM соответственно. Теперь это работает!!!
odi9
07 ноя ’12 в 13:47
2012-11-07 13:47
2012-11-07 13:47
Недавно я выполнил миграцию с 2003 на 2012 R2, и у меня была та же самая проблема, которую вы описали. CA будет восстанавливаться и запускаться нормально, пока я не импортирую резервную копию реестра из старого CA.
После разговора с Microsoft и нескольких часов устранения неполадок мы нашли решение. Я не нашел эту страницу во время поисковика, но вот она:
Служба сервера сертификатов не запускается, и вы получаете сообщение об ошибке: Данные недействительны. 0xd (Win32: 13) в центре сертификации на основе Windows 2003
В основном, имеется сертификат с истекшим сроком действия или сертификат, в котором отсутствует закрытый ключ в CAcerthash
ключ реестра. В моем случае это был просроченный сертификат.
Для того, чтобы решить проблему
-
Откройте сертификат в
mmc
и выберите компьютер. -
Откройте магазин личных сертификатов.
-
Ищите сертификаты, которые либо не отображают значок закрытого ключа, либо у которых истек срок действия.
-
Откройте сертификат и обратите внимание на отпечаток в деталях боли. Вам нужно будет сопоставить это с отпечатками, присутствующими в вашем
CAcerthash
реестр. -
Получив отпечатки пальцев, проверьте реестр CA certhash на наличие отсутствующего или устаревшего отпечатка сертификата и замените значения отпечатка знаком минус —
-
Сохраните раздел реестра и попытайтесь запустить центр сертификации.
Это сработало для меня, так что, надеюсь, кто-то еще считает это полезным
Joe
29 мар ’17 в 20:36
2017-03-29 20:36
2017-03-29 20:36
Я столкнулся с подобной проблемой с подчиненным ЦС, который был обновлен с Windows 2008 R2 до 2012 R2. К счастью, я только что создал новый корневой CA с Server 2012 R2, с которым я мог бы сопоставить параметры реестра. Оказалось, что некоторые значения в ключе HKLMsystemCurrentControlSetServicesCertSvcConfiguration\CSP обновленного компьютера не совпадают с компьютером 2012 R2. В частности, отсутствует «CNGPublicKeyAlgorithm = RSA», «Необходимый поставщик» заменен на «Поставщик хранилища ключей программного обеспечения Microsoft», а «ProviderType» — с 1 на 0. После внесения этих изменений службы сертификации смогли запускаться без ошибок.
brandon
12 ноя ’15 в 18:23
2015-11-12 18:23
2015-11-12 18:23
Эта ошибка может возникнуть, если вы изменили SKU ОС. Например, перешел с 2003 Enterprise на 2008 R2 Standard Edition. Вы не упоминаете SKU вместе с деталями ОС.
Если предположить, что это не так, то для устранения неполадок вам нужно собрать следующее
- procmon ( http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx) запуска службы вместе с
- дамп реестра HKLMsystemcurrentcontrolsetcertsvc и
- журнал отладки certsvc. «certutil -setreg cadebug 0xffffffe3» включит журнал отладки в%SystemRoot%Certsrv.log
включите журнал отладки, запустите procmon и попытайтесь запустить службу. Остановите procmon при сбое запуска службы.
Если вы поделитесь ими где-нибудь, я могу посмотреть.
maweeras
21 июл ’12 в 20:43
2012-07-21 20:43
2012-07-21 20:43