AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 402388
Accepted
Richard Gadsden
Richard Gadsden
Asked: 2012-06-27 07:29:02 +0800 CST2012-06-27 07:29:02 +0800 CST 2012-06-27 07:29:02 +0800 CST

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

  • 772

我已将我的 Active Directory 证书服务企业 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 时,我仍然遇到同样的错误。我收到以下弹出窗口:

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 链没有验证,现在是这样。

我想知道这是否是某种缓存故障,或者是不正确 CRL 的缓存副本(我之前迁移了根 CA,并且必须在 certutil 正确验证之前重新发布 CRL),所以我尝试重新启动以清除缓存。

那并没有改变任何事情。

我还尝试以 SYSTEM 身份运行 Certutil 以查看是否存在权限问题,但这也没有解决问题。

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

windows-server-2008-r2 ad-certificate-services
  • 5 5 个回答
  • 27520 Views

5 个回答

  • Voted
  1. Best Answer
    Richard Gadsden
    2012-07-29T23:34:44+08:002012-07-29T23:34:44+08:00

    我通过 Microsoft 支持解决了这个问题,但我并不真正理解他们是如何解决这个问题的。

    挖出 Microsoft 支持说明,希望这些对某人有用:

    1. 我们发现 certenroll 文件夹中的 CRL 丢失,无法验证根 CA 的吊销状态。
    2. 我们将 CRL 从 Intermediate CA 复制到 Issuing Sub-CA 但仍然出错。
    3. 根据调试团队工程师的说法,我们删除并重新安装了 ADCS 角色,但没有帮助。
    4. 最后我们在 HKLM\system\CurrentControlSet\Services\Certsvc\Configuration 注册表下发现 CertHash 有过期证书的旧值。
    5. 删除旧的散列值并将它们替换为 (-) 符号并启动证书服务。
    6. 证书服务已成功启动。
    • 2
  2. odi9
    2012-11-08T05:47:53+08:002012-11-08T05:47:53+08:00

    我有同样的错误。我使用的是 nCipher 的硬件安全模块。ADCS 无法访问其私钥。似乎在启动 ADCS 服务时,它会在检查私钥的那些人中进行一些测试。因此,我相应地配置了我的 HSM。现在可以了!!!

    • 2
  3. Joe
    2017-03-30T12:36:13+08:002017-03-30T12:36:13+08:00

    我最近进行了 2003 年到 2012 年 R2 的迁移,遇到了与您描述的完全相同的问题。在我从旧 CA 导入注册表备份之前,CA 会恢复并正常启动。

    在与 Microsoft 通话并进行了几个小时的故障排除后,我们找到了解决方案。我在任何谷歌搜索中都没有找到这个页面,但它是:

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

    基本上,证书过期或证书缺少CAcerthash注册表项中的私钥。就我而言,这是一个过期的证书。

    为了解决问题

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

    2. 打开个人证书存储。

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

    4. 打开证书并记下详细信息中的指纹。您需要将其与CAcerthash注册表中存在的指纹进行匹配。

    5. 获得指纹后,请检查 CA certhash 注册表中是否存在丢失或过期的证书指纹,并将指纹值替换为减号 -

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

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

    • 2
  4. maweeras
    2012-07-22T12:43:45+08:002012-07-22T12:43:45+08:00

    如果您更改了操作系统 SKU,则可能会发生此错误。例如,从 2003 Enterprise 到 2008 R2 Standard Edition。您没有提及 SKU 和操作系统详细信息。

    假设情况并非如此,那么要解决此问题,您需要收集以下信息

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

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

    如果你把它们分享到某个地方,我可以看看。

    • 0
  5. brandon
    2015-11-13T10:23:04+08:002015-11-13T10:23:04+08:00

    我遇到了从 Windows 2008 R2 升级到 2012 R2 的从属 CA 的类似问题。幸运的是,我刚刚使用 Server 2012 R2 构建了一个新的根 CA,我可以将注册表设置与之匹配。原来是升级后的电脑HKLM\system\CurrentControlSet\Services\CertSvc\Configuration\\CSP键中的一些值与2012 R2电脑不匹配。具体来说,缺少“CNGPublicKeyAlgorithm = RSA”,“Provider”需要更改为“Microsoft Software Key Storage Provider”,“ProviderType”需要从 1 更改为 0。进行这些更改后,证书服务能够正常启动。

    • 0

相关问题

  • Server 2008 R2 架构更改 - 自 RC 以来是否有任何更改?

  • 是否可以在 Server 2008 R2 Core Install 中安装 servermanagercmd?

  • 视窗 2008 R2 WDS

  • 从命令行备份 Windows 2008 R2 到网络共享 - 隐藏分区问题

  • 在 Windows Server 2008 上移动和更改 Pagefile.sys 大小

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve