证书服务可能正在运行 Windows 2000 或 Windows Server 2003 的计算机上启动

文章翻译 文章翻译
文章编号: 842210 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

症状

在运行 Microsoft Windows Server 2003 或 Microsoft Windows 2000 Server 的计算机,证书服务可能无法启动。

此外,下面的错误消息可能会记录在事件查看器应用程序日志中:

事件类型: 错误
事件源: 证书服务
事件类别: 无
事件 ID: 42
日期: 日期
时间: 时间
用户:N/A
计算机: 计算机名
说明: 证书服务没有启动: 无法为 ISICA 构建 CA 证书链。找不到对象或属性。0x80092004 (-2146885628)。有关详细信息,请参阅帮助和支持中心<http: support.microsoft.com=""></http:>

原因

证书服务启动之前,它枚举所有密钥和证书已颁发给证书颁发机构 (CA),即使密钥和证书已过期。如果其中任何一个证书已从本地计算机个人证书存储区,则不会启动证书服务。

解决方案

若要解决此问题,请确认注册表中的证书指纹数等于已颁发给 CA 的证书数。如果丢失了任何证书,将丢失证书导入到本地计算机个人证书存储区中。在导入丢失的证书之后,使用certutil-repairstore命令修复导入的证书关联的专用密钥存储区之间的链接。

若要执行此操作,请使用以下方法之一,具体取决于哪个版本操作系统的计算机正在运行。

方法 1: Windows Server 2003

若要解决此问题,在基于 Windows Server 2003 的计算机上,请执行以下步骤。

步骤 1: 查找缺少的证书

重要提示此部分、方法或任务包含告诉您如何修改注册表的步骤。但是,如果不正确地修改了注册表,可能会出现严重问题。因此,请确保仔细按这些步骤操作。为增加保护,先备份注册表再对其进行修改。然后,您可以在出现问题时还原注册表。有关如何备份和还原注册表的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
322756 如何在 Windows XP 中备份和还原注册表


证书指纹指示已向此 CA 颁发的所有证书。续订证书时,每次到注册表中的 CaCertHash 列表添加新的证书指纹。在此列表中的条目数必须等于的证书颁发的 ca,并列出在本地计算机个人证书存储区中的数目。

若要查找缺少的证书,请执行以下步骤:
  1. 单击开始,然后单击运行,类型 注册表编辑器然后单击确定
  2. 找到并单击以下注册表子项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\Your_Certificate_Authority_Name
  3. 在右窗格中,双击CaCertHash
  4. 记数值数据列表中包含的证书指纹。
  5. 启动命令提示符。
  6. 键入以下命令,并按 enter 键:
    certutil-存储
    将 CaCertHash 注册表项中列出的证书指纹的数目的本地计算机个人证书存储中列出的证书的数目进行比较。如果数字不同,请转到"步骤 2: 导入丢失证书。"如果数字是相同的请转到"步骤 3: 将 Windows 安装服务器 2003年管理工具包。"

步骤 2: 导入丢失的证书

  1. 单击开始,指向所有程序,都指向管理工具,然后单击证书

    如果列表中没有证书,请执行以下步骤:
    1. 单击开始,然后单击运行,类型 mmc然后单击确定
    2. 文件菜单上,单击添加/删除管理单元中
    3. 单击添加
    4. 管理单元列表中,单击证书,然后单击添加

      如果出现证书管理单元对话框中,单击我的用户帐户,然后单击完成
    5. 单击关闭,然后单击确定

      现在,证书目录已添加到 Microsoft 管理控制台 (MMC)。
    6. 文件菜单上,单击另存为,类型 证书文件名框中,然后再单击保存

      若要在以后打开证书、 单击开始,指向所有程序,都指向管理工具,,然后单击证书
  2. 展开证书、 展开个人、 用鼠标右键单击证书,指向所有任务,,然后单击导入
  3. 欢迎页上,单击下一步
  4. 导入的文件页中,键入您要在文件名框中,导入的证书文件的完整路径,然后单击下一步。或者,单击浏览、 搜索该文件,然后再单击下一步
  5. 如果您要导入的文件是个人信息交换的 PKCS #12 (*。PFX) 文件,您将被提示输入密码。键入密码,然后单击下一步
  6. 证书存储页上,单击下一步
  7. 正在完成证书导入向导页上,单击完成
注意CA 总是将其 CA 证书发布到 %systemroot%\System32\CertSvc\CertEnroll 文件夹中。在该文件夹中,您可能会发现缺少证书。

步骤 3: 将安装 Windows 服务器 2003年管理工具包

导入证书后,您必须使用 Certutil 工具修复导入的证书关联的专用密钥存储区之间的链接。Certutil 工具包括在 CA 证书工具。Windows Server 2003 CA 证书工具都位于 Windows 服务器 2003年管理工具包。如果您的计算机上没有安装 CA 证书工具,请立即安装它们。

若要下载 Windows 服务器 2003年管理工具包,请访问下面的 Microsoft 网站:
http://www.microsoft.com/downloads/details.aspx?FamilyID=c16ae515-c8f4-47ef-a1e4-a8dcbacff8e3&DisplayLang=en

步骤 4: 修复链接

在安装 Windows 服务器 2003年管理工具包后,请按照下列步骤:
  1. 启动命令提示符。
  2. 键入以下内容,然后再按 enter 键:
    cd %systemroot%\system32\certsrv\certenroll
  3. 看起来类似于下面的 Certenroll 文件夹中,请记下的该证书:
    您的服务器.您的域。 com_rootca.crt
  4. 键入以下命令,并在每个命令之后按 enter 键:
    %systemroot%\system32\certutil addstore 我 %systemroot%\system32\certsrv\certenroll\您的服务器.您的域。 com_rootca.crt
    %systemroot%\System32\certutil-转储 %systemroot%\system32\certsrv\certenroll\您的服务器.您的域。 com_rootca.crt
    您的服务器.您的域。 com_rootca.crt 是您在步骤 3 中记下的 Certenroll 文件夹中的证书的名称。
  5. 接近结束时,最后一个命令的输出中,您将看到类似于下面的行:
    键 Id Hash(sha1): ea c7 7d 7e e8 cd 84 9b e8 aa 71 6 d f4 b7 e5 09 d9 b6 32 1b
    键 Id 的哈希数据是特定于您的计算机。记下此线。
  6. 键入下面的命令包括引号,并按 enter 键:
    %systemroot%\system32\certutil repairstore 我"Key_Id_Hash_Data"
    在此命令中,Key_Id_Hash_Data 是您在步骤 4 中记下的行。例如,键入以下命令:
    %systemroot%\system32\certutil repairstore 我"ea c7 7d 7e e8 cd 84 9b e8 aa 71 6 d f4 b7 e5 09 d9 b6 32 1b"
    然后,您会收到以下输出:
    CertUtil:-repairstore 命令成功完成。
  7. 若要验证证书,键入以下命令,然后按 enter 键:
    %systemroot%\system32\certutil verifykeys
    此命令运行后,您将收到以下输出:
    CertUtil:-verifykeys 命令成功完成。

步骤 5: 启动证书服务服务

  1. 单击开始,指向管理工具,然后单击服务
  2. 用鼠标右键单击证书服务,然后单击开始

方法 2: Windows 2000

若要解决此问题,在基于 Windows 2000 的计算机上,请执行以下步骤。

步骤 1: 查找缺少的证书

重要提示此部分、方法或任务包含告诉您如何修改注册表的步骤。但是,如果不正确地修改了注册表,可能会出现严重问题。因此,请确保仔细按这些步骤操作。为增加保护,先备份注册表再对其进行修改。然后,您可以在出现问题时还原注册表。有关如何备份和还原注册表的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
322756 如何在 Windows XP 中备份和还原注册表


证书指纹指示已向此 CA 颁发的所有证书。续订证书时,每次到注册表中的 CaCertHash 列表添加新的证书指纹。在此列表中的条目数必须等于的证书颁发的 ca,并列出在本地计算机个人证书存储区中的数目。

若要查找缺少的证书,请执行以下步骤:
  1. 单击开始,然后单击运行,类型 注册表编辑器然后单击确定
  2. 找到并单击以下注册表子项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\Your_Certificate_Authority_Name
  3. 在右窗格中,双击CaCertHash
  4. 记数值数据列表中包含的证书指纹。
  5. 启动命令提示符。
  6. 键入以下内容,然后再按 enter 键:
    certutil-存储
    将 CaCertHash 注册表项中列出的证书指纹的数目的本地计算机个人证书存储中列出的证书的数目进行比较。如果数字不同,请转到"步骤 2: 导入丢失证书。"如果数字是相同的请转到"步骤 3: 将 Windows 安装服务器 2003年管理工具包。"

步骤 2: 导入丢失的证书

  1. 单击开始,指向程序,指向管理工具,然后单击证书

    如果列表中没有证书,请执行以下步骤:
    1. 单击开始,然后单击运行,类型 mmc然后单击确定
    2. 控制台菜单上,单击添加/删除管理单元中
    3. 单击添加
    4. 管理单元列表中,单击证书,然后单击添加

      如果出现证书管理单元对话框中,单击我的用户帐户,然后单击完成
    5. 单击关闭
    6. 单击确定
    7. 现在,证书目录已添加到 Microsoft 管理控制台 (MMC)。
    8. 控制台菜单上,单击另存为,类型 证书 与文件名称,然后单击保存

      若要在以后打开证书、 单击开始,指向程序,指向管理工具,,然后单击证书
  2. 展开证书、 展开个人、 用鼠标右键单击证书,指向所有任务,,然后单击导入
  3. 欢迎页上,单击下一步
  4. 导入的文件页中,键入您要在文件名框中,导入的证书文件的完整路径,然后单击下一步。或者,单击浏览、 搜索该文件,然后再单击下一步
  5. 如果您要导入的文件是个人信息交换的 PKCS #12 (*。PFX),您将被提示输入密码。键入密码,然后单击下一步
  6. 证书存储页上,单击下一步
  7. 正在完成证书导入向导页上,单击完成
注意CA 总是将其 CA 证书发布到 %systemroot%\System32\CertSvc\CertEnroll 文件夹中。在该文件夹中,您可能会发现缺少证书。

步骤 3: 安装的 Windows 服务器 2003 Certutil 工具

导入证书后,您必须使用 Windows Server 2003 CA 证书工具来修复导入的证书关联的专用密钥存储区之间的链接。

Windows 服务器 2003年管理工具包中包括 Certutil.exe 和 Certreq.exe 的 Windows Server 2003 版本。若要在基于 Windows 2000 的计算机上安装这些工具,必须首先运行 Windows Server 2003 或 Microsoft Windows XP Service Pack 1 (SP1) 或更高版本的服务包的计算机上安装 Windows 服务器 2003年管理工具包。无法直接在基于 Windows 2000 的计算机上安装 Windows 服务器 2003年管理工具包。

重要提示Windows Server 2003 CA 证书工具复制到基于 Windows 2000 的计算机后,两个版本的 Certutil 工具将驻留在基于 Windows 2000 的计算机上。请不要删除 Windows 2000 Certutil 工具。其他程序依赖于此工具的 Windows 2000 版本。例如,证书 mmc 管理单元需要 Windows 2000 Certutil 工具。此外,没有注册的 Windows 服务器 2003年颁发和例如在基于 Windows 2000 的计算机上的文件。

若要在基于 Windows 2000 的计算机上使用 Windows Server 2003 CA 证书工具,请执行以下步骤:
  1. 下载 Windows Server 2003 管理工具包。要执行此操作,请访问下面的 Microsoft Web 站点:
    http://www.microsoft.com/downloads/details.aspx?FamilyID=c16ae515-c8f4-47ef-a1e4-a8dcbacff8e3&DisplayLang=en
  2. 登录到运行 Windows Server 2003 或 Windows XP SP1 或更高版本的服务包的计算机上。
  3. 设置 Windows Server 2003 管理工具包。
  4. 在 Windows 服务器 2003年管理工具包,找到下列文件,然后将其复制到可移动存储媒体,如 3.5 寸磁盘:
    Certreq.exe
    Certutil.exe
    颁发
    例如
  5. 以管理员身份登录到基于 Windows 2000 的计算机上。
  6. 在步骤 4 中的基于 Windows 2000 的计算机相应的驱动器中插入您所使用的可移动存储媒体。
  7. 启动命令提示符。
  8. 创建一个新的文件夹,然后将可移动存储介质上的文件复制到新文件夹。若要执行此操作,键入以下命令,并在每个命令之后按 enter 键:
    cd\
    W2k3tool md
    cd w2k3tool
    副本 Removable_Media_Drive_Letter: \cert*
    注意若要避免使用 Certutil 工具已在计算机上的 Windows 2000 各种版本冲突,系统搜索路径中不包括使用 W2k3tool 文件夹。

步骤 4: 修复链接

Windows Server 2003 CA 证书工具文件复制到基于 Windows 2000 的计算机后,请按照下列步骤:
  1. 启动命令提示符。
  2. 键入以下内容,然后再按 enter 键:
    cd %systemroot\system32\certsrv\certenroll
  3. 看起来类似于下面的 Certenroll 文件夹中,请记下的该证书:您的服务器.您的域。 com_rootca.crt
  4. 键入以下命令,并在每个命令之后按 enter 键:
    Root_Drive_Letter:\w2k3tool\certutil addstore 我 %systemroot%\system32\certsrv\certenroll\您的服务器.您的域。 com_rootca.crt
    Root_Drive_Letter:\w2k3tool\certutil-转储 %systemroot%\system32\certsrv\certenroll\您的服务器.您的域。 com_rootca.crt
    Root_Drive_Letter 是字母的根目录。

    您的服务器.您的域。 com_rootca.crt 是您在步骤 3 中记下的 Certenroll 文件夹中的证书的名称。
  5. 接近结束时,最后一个命令的输出中,您将看到类似于下面的行:
    键 Id Hash(sha1): ea c7 7d 7e e8 cd 84 9b e8 aa 71 6 d f4 b7 e5 09 d9 b6 32 1b
    键 Id 的哈希数据是特定于您的计算机。记下此线。
  6. 键入下面的命令,包括引号,并按 ENTER:
    Root_Drive_Letter:\w2k3tool\certutil repairstore 我"Key_Id_Hash_Data"
    在此命令中,Key_Id_Hash_Data 是您在第 5 步中记下的行。例如,键入以下命令:
    c:\w2k3tool\certutil repairstore 我"ea c7 7d 7e e8 cd 84 9b e8 aa 71 6 d f4 b7 e5 09 d9 b6 32 1b"
    您已完成此命令后,您将收到以下输出:
    CertUtil:-repairstore 命令成功完成。
  7. 要验证的证书,请键入以下命令,,然后按 enter 键:
    Root_Drive_Letter:\w2k3tool\certutil verifykeys
    此命令运行后,您将收到以下输出:
    CertUtil:-verifykeys 命令成功完成。

步骤 5: 启动证书服务服务

  1. 单击开始,指向管理工具,然后单击服务
  2. 用鼠标右键单击证书服务,然后单击开始

更多信息

必须停止使用,并替换 CA,如果满足下列条件之一为真:
  • 找不到丢失的证书。
  • 不能重新安装证书。
  • Certutil-repairstore命令无法完成,因为已删除私人密钥。
若要停止使用并替换 CA,请执行以下步骤:
  1. 已停止正常工作的 ca 吊销证书。若要执行此操作,请执行以下步骤:
    1. 对发出要吊销的证书的计算机的管理员身份登录。
    2. 单击开始,指向程序,指向管理工具,然后单击证书颁发机构
    3. 展开CA_Name然后单击颁发的证书
    4. 在右窗格中,单击您想吊销的证书。
    5. 操作菜单上,指向所有任务,然后单击吊销证书
    6. 原因代码列表中,单击证书,吊销的原因,然后单击
    这将撤消由已停止正常工作的 CA 所颁发的所有证书。
  2. 发布证书吊销列表 (CRL) 上的下一步最高级 CA。若要执行此操作,请执行以下步骤:
    1. 到下一步的最高级 CA 运行的计算机的管理员身份登录。
    2. 单击开始,指向程序,指向管理工具,然后单击证书颁发机构
    3. 展开CA_Name然后单击吊销的证书
    4. 操作菜单上,指向所有任务,然后单击发布
    5. 单击以覆盖以前发布的 CRL。
  3. 如果 CA 已经停止正常工作已发布到 活动目录(AD) 目录服务,请将其删除。若要从 活动目录(AD) 删除 CA,请执行以下步骤:
    1. 启动命令提示符。
    2. 键入以下内容,然后再按 enter 键:
      certutil-dsdel CA_Name
  4. 其中 CA 已停止正常工作的服务器删除证书服务。若要执行此操作,请执行以下步骤:
    1. 单击开始,指向设置,然后单击控制面板
    2. 双击添加/删除程序,然后单击添加/删除 Windows 组件
    3. 组件列表中,单击以清除证书服务复选框,请单击下一步,然后单击完成
  5. 安装证书服务。若要执行此操作,请执行以下步骤:
    1. 单击添加/删除 Windows 组件
    2. 组件列表中,单击以选择证书服务复选框,单击下一步,然后单击完成
  6. 所有用户、 计算机或由已停止正常工作的 CA 所颁发的证书服务必须注册新的 CA 的证书。
注意如果出现此问题的公钥基础结构 (PKI) 层次结构的根 CA 上,如果不修复该问题,您将必须更换整个 PKI 层次结构。有关如何删除此 PKI 层次结构的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
889250 如何停止使用 Windows 企业证书颁发机构,以及如何从 Windows Server 2003 和 Windows 2000 服务器中删除所有相关的对象

属性

文章编号: 842210 - 最后修改: 2013年12月1日 - 修订: 4.0
这篇文章中的信息适用于:
  • Microsoft Windows Server 2003 Enterprise Edition
  • Microsoft Windows Server 2003 Standard Edition
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Server
关键字:?
kbwinservds kbactivedirectory kbtshoot kbprb kbmt KB842210 KbMtzh
机器翻译
重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。
点击这里察看该文章的英文版: 842210
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com