Active Directory证书服务将无法启动 – 错误100

我已将Active Directory证书服务Enterprise CA迁移到新的服务器(从Windows 2003 R2 x86到Windows 2008 R2 x64)。 我一直在检查证书吊销列表有问题,但我已经从根CA重新发布撤销列表,当我运行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时,我仍然遇到同样的错误。 我得到以下popup窗口:

 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

但是文档只是谈论CA链不能validation,现在是。

我想知道,如果这是某种caching失败,或者一个不正确的CRL的caching副本(我之前迁移了根CA,必须重新发布CRL之前certutil将正确validation),所以我试图重新启动刷新caching。

这并没有改变任何东西。

我也尝试运行Certutil作为系统,看看是否有权限问题,也没有解决问题。

[要以系统身份运行:从提升的命令提示符下运行psexec -i -s cmd.exe,它将以系统的身份启动命令提示符。 你可以运行whoami来检查。]

我有同样的错误。 我正在使用nCipher的硬件安全模块。 ADCS无法访问其私钥。 看起来像启动ADCS服务的时候,在检查私钥的时候做了一些testing。 所以,我相应地configuration了我的HSM。 现在,它的作品!

我在微软的支持下解决了这个问题,但是我并没有真正理解他们如何解决这个问题。

挖出微软支持笔记,希望这些对某人有用:

  1. 我们在certenroll文件夹中发现CRL缺失,以validation根CA的撤销状态。
  2. 我们将CRL从中级CA复制到颁发Sub-CA,但仍然出错。
  3. 根据debugging团队工程师,我们删除并重新安装ADCSangular色,但没有帮助。
  4. 最后,我们在HKLM \ system \ CurrentControlSet \ Services \ Certsvc \ Configurationregistry下findCertHash的过期证书的旧值。
  5. 删除旧的哈希值,并用( – )符号replace它们,并启动证书服务。
  6. 证书服务已成功启动。

我最近做了一个2003到2012 R2的迁移,并有你描述的相同的确切问题。 CA将恢复并开始罚款,直到我从旧的CA导入registry备份。

与微软通话和几个小时的故障排除后,我们遇到了解决scheme。 在我的search结果中,我没有find这个页面,但是这里是:

证书服务器服务不会启动,并且您收到错误:数据无效。 在基于Windows 2003的证书颁发机构上的0xd(Win32:13)

基本上有一个过期的证书或证书缺lessCAcerthashregistry项中的私钥。 在我的情况下,这是一个过期的证书。

为了解决这个问题

  1. mmc打开证书并select计算机。

  2. 打开个人证书存储区。

  3. 查找不显示私钥图标或过期date已过的证书。

  4. 打开证书,并注意细节痛苦的指纹。 您需要将其与您的CAcerthashregistry中存在的指纹进行匹配。

  5. 一旦你有你的拇指指纹检查CA certhashregistry丢失或过期的证书指纹,并用减号replace指纹值 –

  6. 保存registry项并尝试启动证书颁发机构。

这对我有用,所以希望别人觉得这有帮助。

如果更改了OS SKU,则可能会发生此错误。 例如从2003企业版到2008 R2标准版。 你不提及SKU以及操作系统的细节。

假设情况并非如此,那么为了排除故障,您需要收集以下内容

  1. 服务启动的procmon( http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx )以及
  2. registry转储HKLM \ system \ currentcontrolset \ certsvc和
  3. 一个certsvcdebugging日志。 “certutil -setreg ca \ debug 0xffffffe3”将启用%SystemRoot%\ Certsrv.log中的debugging日志

启用debugging日志,启动procmon并尝试启动服务。 当服务启动失败时停止procmon。

如果你把它们分享出去,我可以看看。

我遇到了从Windows 2008 R2升级到2012 R2的从属CA的类似问题。 幸运的是,我刚刚用Server 2012 R2构build了一个新的根CA,可以与registry设置进行匹配。 事实certificate,升级后的计算机的HKLM \ system \ CurrentControlSet \ Services \ CertSvc \ Configuration \\ CSP键中的某些值与2012 R2计算机的值不匹配。 具体来说,“CNGPublicKeyAlgorithm = RSA”缺失,需要将“Provider”更改为“Microsoft Software Key Storage Provider”,“ProviderType”需要从1更改为0.进行更改后,证书服务无误启动。