本文分步介绍了如何取消 Microsoft Windows 企业 CA 以及如何从 Active Directory 目录服务中删除所有相关对象。
步骤 1:吊销所有由企业 CA 颁发的活动证书
- 单击“开始”,指向“管理工具”,然后单击“证书颁发机构”。
- 展开 CA,然后单击“颁发的证书”文件夹。
- 在右窗格中,单击某个颁发的证书,然后按 Ctrl+A 以选中所有颁发的证书。
- 右键单击选定的证书,单击“所有任务”,然后单击“吊销证书”。
- 在“证书吊销”对话框中,单击以选择“停止操作”作为吊销原因,然后单击“确定”。
步骤 2:增大 CRL 发布间隔
- 在证书颁发机构 Microsoft 管理控制台 (MMC) 管理单元中,右键单击“吊销的证书”文件夹,然后单击“属性”。
- 在“CRL 发布间隔”框中,键入一个适当长一些的间隔值,然后单击“确定”。
注意:证书吊销列表 (CRL) 的有效期应长于已吊销证书的剩余有效时间。
步骤 3:发布新的 CRL
- 在证书颁发机构 MMC 管理单元中,右键单击“吊销的证书”文件夹。
- 单击“所有任务”,然后单击“发布”。
- 在“发布 CRL”对话框中,单击“新的 CRL”,然后单击“确定”。
步骤 4:拒绝任何挂起的申请
默认情况下,企业 CA 不存储证书申请。不过,管理员可以更改此默认行为。要拒绝任何挂起的证书申请,请按照下列步骤操作:
- 在证书颁发机构 MMC 管理单元中,单击“挂起的申请”文件夹。
- 在右窗格中,单击某个挂起的申请,然后按 Ctrl+A 以选中所有挂起的证书。
- 右键单击选择的申请,单击“所有任务”,然后单击“拒绝申请”。
步骤 5:从服务器中卸载证书服务
- 要停止证书服务,请单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
- 在命令提示符处键入 certutil -shutdown,然后按 Enter。
- 要列出本地计算机的所有密钥存储,请在命令提示符处键入 certutil -key。此命令将显示所有已安装的加密服务提供程序 (CSP) 的名称,以及与每个提供程序相关的密钥存储。在列出的密钥存储中,您将看到您的 CA 名称列出了多次,如以下示例所示。
(1)Microsoft Base Cryptographic Provider v1.0:
1a3b2f44-2540-408b-8867-51bd6b6ed413
MS IIS DCOM ClientSYSTEMS-1-5-18
MS IIS DCOM Server
Windows2000 Enterprise Root CA
MS IIS DCOM ClientAdministratorS-1-5-21-436374069-839522115-1060284298-500
afd1bc0a-a93c-4a31-8056-c0b9ca632896
Microsoft Internet Information Server
NetMon
MS IIS DCOM ClientAdministratorS-1-5-21-842925246-1715567821-839522115-500
(5)Microsoft Enhanced Cryptographic Provider v1.0:
1a3b2f44-2540-408b-8867-51bd6b6ed413
MS IIS DCOM ClientSYSTEMS-1-5-18
MS IIS DCOM Server
Windows2000 Enterprise Root CA
MS IIS DCOM ClientAdministratorS-1-5-21-436374069-839522115-1060284298-500
afd1bc0a-a93c-4a31-8056-c0b9ca632896
Microsoft Internet Information Server
NetMon
MS IIS DCOM ClientAdministratorS-1-5-21-842925246-1715567821-839522115-500
- 删除与该 CA 相关的私钥。为此,请在命令提示符处键入以下命令:
certutil -delkey CertificateAuthorityName
注意:如果您的 CA 名称包含空格,请将名称用引号括起来。
在此示例中,CertificateAuthorityName 是 Windows2000 Enterprise Root CA。因此,此示例中的命令行如下所示:certutil -delkey "Windows2000 Enterprise Root CA"
- 再次列出密钥存储以验证是否已删除您的 CA 的私钥。
- 删除您 CA 的私钥后,卸载证书服务。为此,请按照下列步骤操作:
- 如果证书颁发机构 MMC 管理单元仍处于打开状态,请将其关闭。
- 单击“开始”,指向“控制面板”,然后单击“添加或删除程序”。
- 单击“添加/删除 Windows 组件”。
- 在“组件”框中,单击以清除“证书服务”复选框,单击“下一步”,然后按照“Windows 组件向导”中的说明来完成删除证书服务。
步骤 6:从 Active Directory 中删除 CA 对象
将 Microsoft 证书服务安装在属于域成员的服务器上后,将在 Active Directory 中的配置容器中创建多个对象。这些对象如下所示:
- certificateAuthority 对象
- 位于 CN=AIA,CN=Public Key Services,CN=Services,CN=Configuration,DC=ForestRootDomain 中。
- 包含该 CA 的 CA 证书。
- 已发布的颁发机构信息访问 (AIA) 位置。
- crlDistributionPoint 对象
- 位于 CN=ServerName,CN=CDP,CN=Public Key Service,CN=Services,CN=Configuration,DC=ForestRootDomain 中。
- 包含由 CA 定期发布的 CRL。
- 已发布的 CRL 分发点 (CDP) 位置。
- certificationAuthority 对象
- 位于 CN=Certification Authorities,CN=Public Key Services,CN=Services,CN=Configuration,DC=ForestRootDomain 中。
- 包含该 CA 的 CA 证书。
- pKIEnrollmentService 对象
- 位于 CN=Enrollment Services,CN=Public Key Services,CN=Services,CN=Configuration,DC=ForestRootDomain 中。
- 由企业 CA 创建。
- 包含有关 CA 配置中指定要发布的证书类型的信息。此对象的权限可以控制哪些安全主体可以向此 CA 注册。
卸载 CA 时,将只删除 pKIEnrollmentService 对象。这就可以防止客户端试图向已停用的 CA 进行注册。其他对象则会保留下来,因为由 CA 发布的证书可能仍未卸载。这些证书必须按“步骤 1:吊销所有由企业 CA 颁发的活动证书”一节所介绍的过程进行吊销。
为了使公钥基础结构 (PKI) 客户端计算机成功处理这些未卸载的证书,计算机必须在 Active Directory 中找到颁发机构信息访问 (AIA) 和 CRL 分发点路径。最好吊销所有未卸载的证书、延长 CRL 的有效期并在 Active Directory 中发布 CRL。如果多种不同的 PKI 客户端在处理未卸载的证书,验证将失败,因而将不使用这些证书。
如果在 Active Directory 中不优先维护 CRL 分发点和 AIA,则可以删除这些对象。如果希望处理以前处于活动状态的一个或多个数字证书,请不要删除这些对象。
要从 Active Directory 中删除所有证书服务对象,请按照下列步骤操作:
- 单击“开始”,指向“管理工具”,然后单击“Active Directory 站点和服务”。
- 单击“查看”菜单选项,然后单击“显示服务节点”。
- 依次展开“服务”、“公钥服务”,然后单击“AIA”文件夹。
- 在右窗格中,右键单击 CA 的 CertificationAuthority 对象,单击“删除”,然后单击“是”。
- 在 Active Directory 站点和服务 MMC 管理单元的左窗格中,单击“CDP”文件夹。
- 在右窗格中,找到安装了证书服务的服务器的容器对象。右键单击该容器,单击“删除”,然后单击“是”两次。
- 在 Active Directory 站点和服务 MMC 管理单元的左窗格中,单击“证书颁发机构”节点。
- 在右窗格中,右键单击 CA 的 CertificationAuthority 对象,单击“删除”,然后单击“是”。
- 在 Active Directory 站点和服务 MMC 管理单元的左窗格中,单击“注册服务”节点。
- 在右窗格中,验证卸载证书服务后是否已删除 CA 的 pKIEnrollmentService 对象。如果未删除该对象,则右键单击该对象,单击“删除”,然后单击“是”。
- 在 Active Directory 站点和服务 MMC 管理单元的左窗格中,单击“证书模板”文件夹。
- 在右窗格中,单击一个证书模板,然后按 Ctrl+A 以选择所有模板。右键单击所选模板,单击“删除”,然后单击“是”。
重要说明:如果意外删除了模板,请确保以企业管理员的身份登录到运行证书服务的服务器。在命令提示符处,键入 cd %windir%\system32,按 Enter,键入 regsvr32 /i:i /n /s certcli.dll,然后按 Enter。这将在 Active Directory 中重新创建证书模板。 - 在 Active Directory 站点和服务 MMC 管理单元的左窗格中,单击“公钥服务”文件夹,右键单击“NTAuthCertificates”对象,单击“删除”,然后单击“是”。
重要说明:如果林中安装有其他企业或独立 CA,请不要删除此对象。
步骤 7:删除 CA 数据库
卸载证书服务后,CA 数据库将保留原样,以防需要在另一台服务器上重新创建该 CA。
要删除 CA 数据库,请删除 %systemroot%\System32\Certlog 文件夹。
步骤 8:清理域控制器
卸载 CA 后,必须删除已发布给所有域控制器的证书。要删除发布给域控制器的证书,请使用 Microsoft Windows 2000 Resource Kit 中的 Dsstore.exe 实用工具。
要删除旧的域控制器证书,请按照下列步骤操作:
- 单击“开始”,单击“运行”,键入 cmd,然后按 Enter。
- 在域控制器上,在命令提示符处键入 dsstore -dcmon,然后按 Enter。
- 键入 3,然后按 Enter。此选择将删除所有域控制器上的所有证书。
“注意”:Dsstore.exe 实用工具将尝试验证向每个域控制器颁发的域控制器证书。未验证的证书将从相关的域控制器中删除。
这时,您可以重新安装证书服务。完成安装后,将为 Active Directory 发布新的根证书。当域客户端计算机更新它们的安全策略时,计算机会自动将新的根证书下载到其受信任的根存储中。
要强制应用安全策略,请按照下列步骤操作:
- 单击“开始”,单击“运行”,键入 cmd,然后按 Enter。
- 在命令提示符处,键入以下命令:
Windows 2000
secedit /refreshpolicy machine_policy /enforce
Windows Server 2003
gpupdate /force
帮助您删除 CA 对象的实用工具
Windows Server 2003 Resource Kit 工具包含可帮助您从域中删除 CA 对象的实用工具。
Certutil.exe 实用工具
Windows Server 2003 版的 Certutil.exe 实用工具可用于从 Active Directory 中删除 Windows Server 2003 和 Windows 2000 CA。要从 Active Directory 中删除 CA,请在命令提示符处键入以下命令:
certutil -dsdel CA Name
在此示例中,CA 名称是 Windows2000 Enterprise Root CA。因此,此示例中的命令行如下所示:
certutil -dsdel "Windows2000 Enterprise Root CA"
注意:如果 CA 名称包含空格,则名称必须用引号括起来。
Pkiview.msc
实用工具
此图形 MMC 管理单元可用于查看、添加以及从 Active Directory 中删除证书和对象。要使用 Pkiview.msc 实用工具,请按照下列步骤操作:
- 单击“开始”,单击“运行”,键入 MMC,然后单击“确定”。
- 依次单击“文件”、“打开”,然后找到安装有 Pkiview.msc 实用工具的文件夹。
- 右键单击根节点 (Enterprise PKI),然后单击“管理 AD 容器”。
- 单击每个选项卡,然后删除对已停用的 CA 的所有引用。
注意:这些实用工具既可用于 Windows 2000 和 Windows Server 2003 企业 CA,也可用于 Windows 2000 和 Windows Server 2003 独立 CA。
有关如何获取 Windows Server 2003 Resource Kit 工具的其他信息,请访问下面的 Microsoft 网站: