Службы сертификации Active Directory не запускаются - ошибка 100
Я перенес свой центр сертификации корпоративных служб 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, чтобы проверить.]
5 ответов
Я решил эту проблему с поддержкой Microsoft, но я не совсем понял, что они сделали, чтобы решить эту проблему.
Откопайте заметки о поддержке Microsoft, в надежде, что они кому-нибудь пригодятся:
- Мы обнаружили, что CRL в папке certenroll отсутствует для проверки статуса отзыва из корневого центра сертификации.
- Мы скопировали CRL из промежуточного ЦС в выдающий суб-ЦС, но все равно получили ошибку.
- По словам инженера команды отладки мы удалили и переустановили роли ADCS, но это не помогло.
- Наконец, мы нашли в HKLM\system\CurrentControlSet\Services\Certsvc\ Registry Registry CertHash были более старые значения для сертификатов с истекшим сроком действия.
- Удалил старые значения хэшей, заменил их знаками (-) и запустил службу сертификации.
- Служба сертификации запущена успешно.
У меня была такая же ошибка. Я использовал аппаратный модуль безопасности от nCipher. ADCS не смог получить доступ к своему секретному ключу. Похоже, что при запуске службы ADCS это делает некоторый тест среди тех, кто проверяет закрытый ключ. Итак, я настроил свой HSM соответственно. Теперь это работает!!!
Недавно я выполнил миграцию с 2003 на 2012 R2, и у меня была та же самая проблема, которую вы описали. CA будет восстанавливаться и запускаться нормально, пока я не импортирую резервную копию реестра из старого CA.
После разговора с Microsoft и нескольких часов устранения неполадок мы нашли решение. Я не нашел эту страницу во время поисковика, но вот она:
Служба сервера сертификатов не запускается, и вы получаете сообщение об ошибке: Данные недействительны. 0xd (Win32: 13) в центре сертификации на основе Windows 2003
В основном, имеется сертификат с истекшим сроком действия или сертификат, в котором отсутствует закрытый ключ в CAcerthash
ключ реестра. В моем случае это был просроченный сертификат.
Для того, чтобы решить проблему
Откройте сертификат в
mmc
и выберите компьютер.Откройте магазин личных сертификатов.
Ищите сертификаты, которые либо не отображают значок закрытого ключа, либо у которых истек срок действия.
Откройте сертификат и обратите внимание на отпечаток в деталях боли. Вам нужно будет сопоставить это с отпечатками, присутствующими в вашем
CAcerthash
реестр.Получив отпечатки пальцев, проверьте реестр CA certhash на наличие отсутствующего или устаревшего отпечатка сертификата и замените значения отпечатка знаком минус -
Сохраните раздел реестра и попытайтесь запустить центр сертификации.
Это сработало для меня, так что, надеюсь, кто-то еще считает это полезным
Я столкнулся с подобной проблемой с подчиненным ЦС, который был обновлен с Windows 2008 R2 до 2012 R2. К счастью, я только что создал новый корневой CA с Server 2012 R2, с которым я мог бы сопоставить параметры реестра. Оказалось, что некоторые значения в ключе HKLM\system\CurrentControlSet\Services\CertSvc\Configuration\\CSP обновленного компьютера не совпадают с компьютером 2012 R2. В частности, отсутствует "CNGPublicKeyAlgorithm = RSA", "Необходимый поставщик" заменен на "Поставщик хранилища ключей программного обеспечения Microsoft", а "ProviderType" - с 1 на 0. После внесения этих изменений службы сертификации смогли запускаться без ошибок.
Эта ошибка может возникнуть, если вы изменили SKU ОС. Например, перешел с 2003 Enterprise на 2008 R2 Standard Edition. Вы не упоминаете SKU вместе с деталями ОС.
Если предположить, что это не так, то для устранения неполадок вам нужно собрать следующее
- procmon ( http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx) запуска службы вместе с
- дамп реестра HKLM\system\currentcontrolset\certsvc и
- журнал отладки certsvc. "certutil -setreg ca\debug 0xffffffe3" включит журнал отладки в%SystemRoot%\Certsrv.log
включите журнал отладки, запустите procmon и попытайтесь запустить службу. Остановите procmon при сбое запуска службы.
Если вы поделитесь ими где-нибудь, я могу посмотреть.