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

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

本页

症状

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

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

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

原因

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

解决方案

若要解决此问题,验证在注册表中的证书 thumbprints 数等于的 CA 颁发的证书的数量。是否缺少任何证书缺少证书导入到本地计算机个人证书存储。在导入丢失的证书之后,使用 certutil-repairstore 命令修复该导入的证书和相关联的私有密钥存储区之间的链接。

若要执行此操作使用您的计算机运行的具体情况取决于版本的操作系统版本在下列方法之一。

方法 1: Windows Server 2003

若要解决此问题在一台基于 Windows Server 2003 的计算机上,请按照下列步骤操作。

步骤 1: 查找丢失的证书

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


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

若要查找缺少证书,请按照下列步骤操作:
  1. 单击 开始、 单击 运行,键入 regedit,然后单击 确定
  2. 找到并单击以下子项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\ Your_Certificate_Authority_Name
  3. 在右窗格中双击 $ CaCertHash
  4. 记下的 数值数据 列表中包含的证书 thumbprints 数。
  5. 启动命令提示符。
  6. 键入下面的命令,然后按 ENTER 键:
    certutil-存储
    进行比较的本地计算机个人证书存储区的证书 thumbprints CaCertHash 注册表项中列出的数量中列出的证书的数量。不同数字是否转到"步骤 2: 导入丢失的证书"如果数字是相同的请转到"步骤 3: 安装 Windows Server 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 Server 2003 管理工具包

证书导入后,您必须使用 Certutil 工具来修复导入的证书和相关联的私有密钥存储区之间链接。在工具 CA 证书包含 Certutil 工具。Windows Server 2003 CA 证书工具位于 Windows Server 2003 管理工具包中。如果您的计算机上未安装 CA 证书工具,请立即对它们进行安装。

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

步骤 4: 修复链接

在安装 Windows Server 2003 管理工具包后,请按照下列步骤操作:
  1. 启动命令提示符。
  2. 键入以下内容,然后按 ENTER 键:
    cd %systemroot%\system32\certsrv\certenroll
  3. 请看起来类似于以下 Certenroll 文件夹中的证书的记下:
    Your_ServerYour_Domain com_rootca.crt
  4. 键入下面的命令,每个命令之后按 ENTER 键:
    %systemroot%\system32\certutil-addstore 我 %systemroot%\system32\certsrv\certenroll\ Your_ServerYour_Domain com_rootca.crt
    %systemroot%\System32\certutil-转储 %systemroot%\system32\certsrv\certenroll\ Your_ServerYour_Domain com_rootca.crt
    Your_ServerYour_Domain 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 9 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 6d f4 b7 e5 09 d9 b6 32 1b"
    然后,您将收到以下输出:
    CertUtil:-repairstore 命令已成功完成。
  7. 要验证该证书,键入以下内容,然后按 ENTER 键执行以下操作:
    -verifykeys %systemroot%\system32\certutil
    此命令运行后,您将收到以下输出:
    CertUtil:-verifykeys 命令已成功完成。

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

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

方法 2: Windows 2000

若要解决此问题在一台基于 Windows 2000 的计算机上,请按照下列步骤操作。

步骤 1: 查找丢失的证书

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


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

若要查找缺少证书,请按照下列步骤操作:
  1. 单击 开始、 单击 运行,键入 regedit,然后单击 确定
  2. 找到并单击以下子项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\ Your_Certificate_Authority_Name
  3. 在右窗格中双击 $ CaCertHash
  4. 记下的 数值数据 列表中包含的证书 thumbprints 数。
  5. 启动命令提示符。
  6. 键入以下内容,然后按 ENTER 键:
    certutil-存储
    进行比较的本地计算机个人证书存储区的证书 thumbprints CaCertHash 注册表项中列出的数量中列出的证书的数量。不同数字是否转到"步骤 2: 导入丢失的证书"如果数字是相同的请转到"步骤 3: 安装 Windows Server 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 Server 2003 Certutil 工具

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

在 Windows Server 2003 和版本的 Certutil.exe Certreq.exe 都包括在 Windows Server 2003 管理工具包。要在一台基于 Windows 2000 的计算机上安装该工具,首先必须在与 Service Pack 1 (SP1) 或更高版本的 service pack 运行 Windows Server 2003 或 Microsoft Windows XP 的计算机上安装 Windows Server 2003 管理工具包。 无法直接在一台基于 Windows 2000 的计算机上安装 Windows Server 2003 管理工具包。

重要 将 Windows Server 2003 CA 证书工具复制到基于 Windows 2000 的计算机后,Certutil 工具的两个版本将驻留在基于 Windows 2000 的计算机上。不要删除 Windows 2000 Certutil 工具。其他程序依赖于此工具的 Windows 2000 版本。例如对于证书 MMC 管理单元需要 Windows 2000 Certutil 工具。此外,并不能注册 Windows Server 2003 Certcli.dll 和 Certadm.dll 基于 Windows 2000 的计算机上的文件。

若要在一台基于 Windows 2000 的计算机上使用 Windows Server 2003 CA 证书工具,请按照下列步骤操作:
  1. 下载 Windows Server 2003 管理工具包。若要这样做,请访问下面的 Microsoft 网站:
    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 Server 2003 管理工具包中, 找到了下列文件,然后将它们复制到一个可移动存储媒体如 3.5 寸磁盘:
    Certreq.exe
    Certutil.exe
    Certcli.dll
    Certadm.dll
  5. 以管理员身份登录到基于 Windows 2000 的计算机。
  6. 在步骤 4 到基于 Windows 2000 的计算机的适当的驱动器中插入所使用的可移动存储媒体。
  7. 启动命令提示符。
  8. 创建一个新的文件夹,然后将可移动存储媒体上的文件复制到新文件夹。若要这样做键入下面的命令和每个命令之后按 ENTER 键:
    cd\
    md W2k3tool
    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 文件夹看起来类似于以下内容中的证书: Your_ServerYour_Domain com_rootca.crt
  4. 键入下面的命令,每个命令之后按 ENTER 键:
    Root_Drive_Letter: \ w2k3tool \certutil-addstore 我 %systemroot%\system32\certsrv\certenroll\ Your_ServerYour_Domain com_rootca.crt
    Root_Drive_Letter: \ w2k3tool \certutil-转储 %systemroot%\system32\certsrv\certenroll\ Your_ServerYour_Domain com_rootca.crt
    Root_Drive_Letter是根区目录中的字母。

    Your_ServerYour_Domain 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 9 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 6d 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 已停止正常工作的已发布到 Active Directory 目录服务中,请将其删除。若要删除该 CA 从 Active Directory,请按照下列步骤操作:
    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 Server 中删除所有相关的对象的方法

属性

文章编号: 842210 - 最后修改: 2006年10月30日 - 修订: 3.3
这篇文章中的信息适用于:
  • Microsoft Windows Server 2003 Enterprise Edition
  • Microsoft Windows Server 2003 Standard Edition
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Server
关键字:?
kbmt kbwinservds kbactivedirectory kbtshoot kbprb KB842210 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 842210
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈