| 感谢 | |
| 简介 | |
| 证书模板概述 | |
| 管理版本 1 证书模板 | |
| 管理版本 2 证书模板 | |
| 部署证书模板 | |
| 规划注意事项 | |
| 预排 | |
| 附录 A:无线证书 | |
| 附录 B:参考资料 | |
| 附录 C:证书模板架构添加 |
Microsoft Corporation 程序管理员 David Cross
Microsoft Corporation 技术作者 Mike Danseglio
Microsoft Germany 高级顾问 Carsten B. Kinder
本白皮书讨论使用 Windows Server 2003, Enterprise Edition 和企业证书颁发机构 (CA) 设计、管理和实现版本 2 证书模板的最佳方法。
应用程序约束 在限定的下一级别配置中,限制证书应用于何种用途的约束。所示证书必须包括所需的能够被合作组织接受的应用程序约束。
颁发机构信息访问 (AIA) 包含 URL 位置(在此检索要颁发的 CA 证书)的证书扩展。AIA 扩展包括 HTTP、FTP、LDAP 或 FILE URL。
证书吊销列表 (CRL) 由 CA 颁发的数字签名列表,包括一系列由 CA 颁发而且已经被吊销的证书。该列表包括证书序列号、证书被吊销的日期和吊销原因。应用程序能够执行 CRL 检查以便确定所示证书的吊销状态,也称为基本 CRL。
CRL 分发点 (CDP) 证书扩展,它指示从何处开始检索 CA 证书吊销列表。该扩展包括多个用于检索 CRL 的 HTTP、FTP、FILE 或 LDAP URL。
增量证书吊销列表(增量 CRL) 一种包括自从发布上一个基本 CRL 以来被吊销的证书列表的 CRL。增量 CRL 经常被用于吊销大量证书,以便优化带宽使用的环境。
发布策略约束 一种定义组织可信任的证书必须遵循的发布惯例的约束。映射组织中的发布策略对象标识符以与合作组织的相应对象标识符匹配,以便公钥基础结构 (PKI) 能够识别所示证书的对象标识符。
名称约束 一种约束,它限制提交给 CA 的证书请求中所允许和禁止使用的名称。
在线证书状态协议 (OCSP) 允许对证书状态进行实时验证(CryptoAPI 调用 OCSP 响应器,然后 OCSP 响应器为所示证书的吊销状态提供即时的验证)的协议。OCSP 响应器通常使用 CRL 检查维护其状态信息。
公钥基础结构 (PKI) PKI 使用公钥加密为组织提供在公共网络上安全地交换数据的能力,从而可以通过阻止通讯侦听来确保安全性。PKI 包括颁发数字证书的证书颁发机构 (CA)、存储证书的目录(包括 Windows 2000 和 Windows Server 2003 中的 Active Directory)和针对网络中的安全实体颁发的 X.509 证书。PKI 为基于证书的凭据提供验证,并确保凭据不会被吊销、损坏或修改。
安全主体 能够在 Windows Server 2003 任意访问控制列表 (DACL) 中被分配权限的用户、安全组或计算机帐户。
接受方密钥标识符 (SKI) 包含在 CA 证书中的证书扩展,包括 CA 证书公钥的散列。该散列位于所有颁发证书的颁发机构密钥标识符 (SKI) 中,以便于链构建。
Windows 2000 介绍了使用证书模板定义证书格式和内容的概念。Windows 2000 Enterprise CA 使用证书模板定义 Windows 2000 Enterprise CA 能够颁发的证书的种类。任意访问控制列表 (DACL) 与证书模板相关联,定义哪些安全主体拥有读取、注册和配置证书模板的权限。Enterprise CA 集成于 Active Directory 中。在 Active Directory(在整个目录林中有效)中定义证书模板和模板对象的 DACL。如果有多个 Enterprise CA 在 Windows 目录林中运行,权限的改变将影响所有 Enterprise CA。
Windows 2000 Enterprise CA 使用的证书模板称为版本 1 证书模板。Windows 2000 附带了大量预定义的版本 1 证书模板,但是并不允许修改这些默认的证书模板。唯一可以进行的修改是改变权限,以允许注册证书模板。安装 Enterprise CA 后,在默认情况下将创建版本 1 证书模板。
Windows Server 2003 通过引入版本 2 模板扩展证书模板。版本 2 模板允许在该模板中自定义大多数设置。在默认配置提供多个预配置的版本 2 模板,并允许根据需要添加更多的模板。这为管理员提供了完全的配置灵活性。或者,可以复制版本 1 证书模板,生成能够分别进行修改和保护的版本 2 证书模板。
注意:与 Windows 2000 相似,Windows Server 2003 仅支持版本 1 模板。Windows Server 2003, Enterprise Edition 和 Windows Server 2003, Datacenter Edition 对版本 1 和版本 2 模板都支持。基于版本 2 模板的证书仅能由运行 Windows Server 2003, Enterprise Edition 或 Windows Server 2003, Datacenter Edition 的 Enterprise CA 颁发。
在定义证书模板时,证书模板的定义必须对目录林中的所有 CA 可用。这通过将证书模板信息存储在配置名称上下文(CN=Configuration,DC=ForestRootName)来实现。该信息的复制取决于 Active Directory 的复制安排,而且在复制完成之前证书模板对所有 CA 都不可用。该存储和复制由 Windows Server 2003 系列计算机自动完成。
要建立 Windows Server 2003 CA,必须将 Active Directory 架构升级为 Windows Server 2003 架构。不能将 Windows Server 2003 CA 安装到基于 Windows 2000 的架构中。
将 Windows Server 2003 CD-ROM 放入 CD-ROM 驱动器,通过在 Windows 2000 域控制器上运行 ADPREP /Forestprep 将该架构更新为 Windows Server 2003 架构。
将 Windows Server 2003 CA 安装到基于 Windows Server 2003 的 Active Directory 中时,在升级过程中将对当前证书模板进行更新。该更新对 Windows 2000 版本 1 证书模板的默认设置进行修改,以实现更好的安全默认设置。如果再增加几个 Windows Server 2003, Enterprise Edition CA,将创建版本 2 证书模板。
Enterprise CA 的升级过程必须由属于目录林根域管理员组和企业管理员通用组的成员的帐户执行。这是因为该升级对 Active Directory 中的配置名称上下文进行修改。具体来说,执行该升级的帐户必须对组成员具有以下权限(这些是默认权限):
| • | 对 CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=ForestRootDomain 容器具有完全的控制权限 |
| • | 对 CN=OID,CN=Public Key Services,CN=Services,CN=Configuration, DC=ForestRootDomain 容器具有完全的控制权限 |
| • | 对 CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=ForestRootDomain 容器中的每一个证书模板对象具有完全的控制权限 |
注意:证书模板容器的委托将不会影响单独的证书模板。换言之,证书模板的 ACL 不是从容器的 ACL 继承而来的。
要对证书模板进行升级,在对 Windows Server 2003 的证书颁发机构进行升级或在网络上安装新的 Windows Server 2003 CA 之后,执行以下步骤:
1. | 升级到 Windows Server 2003 架构。 |
2. | 请以目录林根域管理员组和企业管理员组的成员的用户帐户身份登录。 |
3. | 在 Windows Server 2003, Enterprise Edition CA(该 CA 能够在配置为成员服务器或域控制器的 Windows Server 2003、 Windows Server 2003, Enterprise Edition 或 Windows Server 2003, Datacenter Edition 上运行)上,运行证书模板 MMC 控制台 (certtmpl接受方msc)。 注意:证书模板 MMC 控制台还能够在安装了 Windows Server 2003 Administration Pack (Adminpak.msi) 的 Windows XP Professional 计算机上运行。应用与以上注释相同的权限。 |
4. | 当提示写入新的证书模板时,单击 OK。 |
为验证已经成功升级,打开证书模板 MMC 控制台,并确认有 29 个证书模板。模板的版本号都应该存在并且格式为 xxx.xxx,例如:100.2。版本 1 证书模板的主版本号使用一位数字,例如:管理员证书模板版本号为 3.1。版本 2 证书模板的主版本号的长度是三位数。例如:密钥恢复证书模板的版本号是 105.0。
注意:证书模板的升级在目录林中安装了新的 Windows Server 2003 CA 的情况下执行。如果将 Windows 2000 CA 升级为 Windows Server 2003,该模板的升级不会自动执行,并仅在第一次打开证书模板 MMC 管理单元时执行。您还可以验证是否已经进行了更新,但是该过程是自动执行的。
完成 Windows Server 2003 证书模板的升级后,以下预配置证书模板在证书模板 MMC 控制台中列出。
| 名称 | 描述 | 密钥用途 | 接受方类型 | 向 AD 发布 |
管理员 | 允许信任列表签名和用户身份验证 | 签名和加密 | User | 是 |
已验证身份的会话 | 接受方能够通过 Web 服务器验证身份 | 签名 | User | 否 |
Basic EFS | 加密文件系统 (EFS) 用其对数据进行加密 | 加密 | User | 是 |
CA 交换 | 用于存储为私钥存档配置的密钥 | 加密 | 计算机 | 否 |
CEP 加密 | 允许所有者充当注册颁发机构 (RA) ,以满足简单证书注册协议 (SCEP) 的要求 | 加密 | 计算机 | 否 |
代码签名 | 用于以数字方式签名的软件 | 签名 | User | 否 |
计算机 | 允许计算机通过网络对自身进行身份验证 | 签名和加密 | 计算机 | 否 |
交叉证书颁发机构 | 在交叉证书和限定的下一级别中使用 | 签名 | CrossCA | 是 |
目录电子邮件复制 | 用于复制 Active Directory 中的电子邮件 | 签名和加密 | DirEmailRep | 是 |
域控制器 | 域控制器拥有的各种用途的证书 | 签名和加密 | DirEmailRep | 是 |
域控制器身份验证 | 用于验证 Active Directory 计算机和用户的身份 | 签名和加密 | 计算机 | 否 |
EFS 恢复代理 | 允许接受方对先前使用 EFS 进行加密的文件进行解密 | 加密 | User | 否 |
注册代理 | 用于代表另一个接受方请求证书 | 签名 | User | 否 |
注册代理(计算机) | 用于代表另一个计算机接受方请求证书 | 签名 | 计算机 | 否 |
交换注册代理(脱机请求) | 用于代表另一个接受方请求证书,并在请求中提供接受方名称 | 签名 | User | 否 |
仅交换签名 | 用于 Microsoft 交换密钥管理服务,向 Exchange 用户颁发证书,使用户能够以数字方式对电子邮件进行签名 | 签名 | User | 否 |
交换用户 | 用于 Microsoft 交换密钥管理服务,向 Exchange 用户颁发证书,对电子邮件进行加密 | 加密 | User | 是 |
IPSEC | 用于 IP 安全 (IPSec),对网络通讯进行数字签名、加密和解密 | 签名和加密 | 计算机 | 否 |
IPSEC(脱机请求) | 用于 IP 安全 (IPSec),对网络通讯进行数字签名、加密和解密(当在要求中提供接受方名称时) | 签名和加密 | 计算机 | 否 |
密钥恢复代理 | 该证书可以恢复在证书颁发机构存档的私钥。 | 加密 | KRA | 是 |
根证书颁发机构 | 用于验证根证书颁发机构的身份 | 签名 | CA | 是 |
| 名称 | 描述 | 密钥用途 | 接受方类型 | 向 AD 发布 | 模板版本 |
路由器 (脱机请求) | 用于通过 SCEP 从持有 CEP 加密证书的 CA 请求的路由器 | 签名和加密 | 计算机 | 否 | 3.1 |
智能卡登录 | 允许所有者使用智能卡进行身份验证 | 签名和加密 | User | 否 | 5.1 |
智能卡用户 | 允许所有者使用智能卡对电子邮件进行身份验证和保护 | 签名和加密 | User | 是 | 9.1 |
从属证书颁发机构 | 用于证明根证书颁发机构(由父或根证书颁发机构颁发)的身份 | 签名 | CA | 是 | 4.1 |
信任列表签名 | 所有者能够以数字方式对信任列表进行签名。 | 签名 | User | 否 | 2.1 |
User | 用户用于电子邮件、EFS 和客户端身份验证的证书 | 签名和加密 | User | 是 | 2.1 |
仅用户签名 | 允许用户以数字方式对数据进行签名 | 签名 | User | 否 | 3.1 |
Web 服务器 | 验证 Web 服务器的身份 | 签名和加密 | 计算机 | 否 | 3.1 |
在 Windows 2000 中,因为仅能设置模板的安全权限,因此证书管理的范围十分有限。可以通过对 Active Directory 站点和 Services MMC 管理单元的高级视图来进行此操作。
对于 Windows Server 2003,证书模板管理通过证书模板 MMC(而不是 Active Directory 站点和 Services MMC 管理单元)进行。
版本 2 证书模板允许为证书定义特定属性以满足组织的商业需求。例如:证书模板允许
| • | 定义是否能导出与证书相关的私钥。 |
| • | 定义证书管理者是否必须批准证书要求,以及在颁发证书之前多少名管理者必须批准该请求。 |
| • | 定义证书模板支持的加密服务提供商 (CSP)。 |
| • | 定义已颁发证书的发布策略和应用程序策略。 |
以下小节详述使用证书模板 MMC 控制台 (certtmpl.msc)可以对版本 2 证书模板进行配置的特定信息。要创建新的证书模板,应该首先复制一个在功能上与所需证书模板相似的现有证书模板。选择正确的初始模板很重要,当前证书模板设置将成为证书模板配置的起始点。
注意:由于证书模板仅在目录林中存在一次,所做的所有更改将在目录林范围应用。如果在一个目录林中存在多个 CA,可以通过发布机制将模板分配给 CA。但是,目录林中的所有 CA 都使用一套模板。
General 选项卡(图 1)是在复制现有证书模板时出现的第一个选项卡。
在 General 选项卡中,可以对以下证书模板属性进行配置:
| • | Template display name 在证书模板控制台、证书控制台和证书颁发机构控制台中显示的显示名称。 |
| • | Template name 在 CN=Certificate Templates,CN=Public Key Services,CN=Services,DC=ForestRootDomain 容器中创建的证书模板对象的名称。 注意:创建证书模板之后,不能更改模板显示名称和模板名称属性。 |
| • | Validity period 定义已颁发证书的有效期。所定义的有效期一定不能超过 CA 证书的有效期。最短续订周期是证书有效期的 80% 或 6 周(取二者中较长的一个)。 |
| • | Renewal period 在有效期已到期之前,如果证书模板支持重新注册,将对证书进行续订。 |
| • | 发布选项 可以选择是否向基于证书模板的 Active Directory 发布证书。证书作为在颁发证书中包含的安全主体的属性发布。 |
| • | 重新注册选项 将一个证书模板发布到 Active Directory 时,如果对于接受方中所示的安全主体,存在使用同一证书模板的有效证书,您可以阻止重新注册。 |
注意:对设置进行重新注册主要影响 Windows Server 2003 网络的自动注册设计。参见 Windows 2000 Certificate Autoenrollment in Windows XP 白皮书,其地址为:http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/certenrl.mspx
Request Handling 选项卡 (图 2)定义了证书模板的用途、所支持的加密服务提供商、可导出性、自动注册设置和是否需要强私钥保护。
证书用途定义了证书的主要用途。证书用途可以是以下四个设置之一:
| • | Encryption 此类用途的证书包括用于加密和解密的加密密钥。 |
| • | Signature 此类用途的证书包括仅用于签名的加密密钥。 |
| • | Signature and encryption 此类用途的证书包括证书加密密钥的所有主要功能,包括:数据加密、初始登录或以数字方式签名的数据。 |
| • | Signature and smartcard logon 此类用途的证书允许用智能卡进行初始登录和以数字方式对数据进行签名,它不能用于数据加密。 |
注意:证书用途设置将决定是否可以为证书模板启用密钥存档。在将证书用途设置为 Encryption 或 Signature and encryption 时,密钥存档才可能实现。以数字方式签名的信息的私钥恢复可能导致身份丢失,并且不被支持。大多数智能卡 CSP 都不支持密钥存档。
当接受方由于用户配置文件损坏或计算机被盗丢失各自的私钥时,将无法访问被相应公钥永久加密的任何信息。为了避免该情况,Windows Server 2003, Enterprise Edition 和 Windows Server 2003, Datacenter Edition 能够在颁发证书时将一个接受方的密钥存入其数据库。这些密钥由 CA 加密和存储。如果接受方丢失其密钥,可以在数据库中检索信息并安全地提供给接受方。这就能够找回加密信息,使其不会丢失。
在 Request Handling 选项卡中定义以下密钥存档设置 :
| • | Archive subject's encryption private key 如果所颁发的 Windows Server 2003, Enterprise Edition 或 Windows Server 2003, Datacenter Edition 证书颁发机构被配置为密钥存档,将对接受方的私钥进行存档。 |
| • | Allow private key to be exported 指定该选项后,可以将接受方私钥导出,以便进行备份或传输。 |
| • | Deleting revoked or expired certificates (do not archive) 如果由于过期或吊销而对证书进行续订,会将以前颁发的证书从接受方证书存储中删除。默认情况下,该证书被存档。 |
| • | Include symmetric algorithms allowed by the subject 当接受方请求证书时,会提供一个支持的对称算法列表。该选项允许证书颁发机构在证书中包括这些算法,即使该服务器不识别或不支持这些算法也是如此。这些算法用于应用程序,例如,安全电子邮件。 |
要启用密钥存档和恢复,必须在 Windows Server 2003, Enterprise Edition 或 Windows Server 2003, Datacenter Edition CA 的证书模板中设置以下配置设置:
| • | 必须配置特定证书模板,以允许密钥存档。 |
| • | 必须在证书颁发机构上标识一个或多个密钥恢复代理,并且必须向这些代理颁发密钥恢复代理证书。 |
| • | 必须在证书颁发机构上配置密钥存档。 |
Request Handling 选项卡也允许为证书模板定义多个用户输入设置。这些设置包括:
| • | Enroll subject without requiring any user input 该选项允许在没有任何用户交互的情况下进行自动注册,并且是计算机和用户证书的默认设置。一定不能为计算机证书启用该选项。 |
| • | Prompt the user during enrollment 尽管在测试初始自动注册部署时很有用,通常也不启用该选项。通过禁用该选项,用户不必为基于证书模板的证书的安装提供任何输入。 |
| • | Prompt the user during enrollment and require user input when the private key is used 该选项使用户能够在用户私钥已生成并且要求用户无论任何时候使用证书和私钥都使用该用户私钥时,在用户私钥上设置一个强私钥保护密码。一定不能为计算机证书或智能卡用户证书启用该选项。 |
注意:要启用智能卡自动注册,必须启用 Prompt the user during enrollment 选项以便提示用户在需要时将智能卡插入智能卡读取器。重要信息:带有自动注册功能的强私钥保护不被计算机证书支持或启用,仅在 Windows XP Service Pack 1 客户机上可用。
另外,对于 Windows 2000 Service Pack 4 和 Windows XP Service Pack 1,可以通过注册表为所有 CSP 强制强密钥保护。可以给注册表中的 "HKLM\Software\Policies\Microsoft\Cryptography" 添加三个新的密钥:
ForceKeyProtection 该密钥将强制 DPAPI 灰显允许用户在选择 UI 时使用密码的选项。设置时,用户必需输入密码。
<"0"> = 不强制对 UI 进行密钥保护
<"1"> = UI 的默认设置,但是允许用户更改选择
<"2"> = 强制对 UI 进行密钥保护、对用户灰显选项
CachePrivateKeys 如果(仅如果)使用以下注册表项,包括 1:
PrivateKeyLifetimeSeconds 包含密钥保持缓存而未被使用的秒数。每次在 CSP 中成功使用时将重置密钥缓存计数器。
警告:对所有新的和导入的密钥请求使用强私钥保护和用户提示,这将导致禁用许多应用程序,如不能显示 UI 的 EFS 和无线(802.1x 身份验证)。有关更多信息,请参见以下知识库文章:http://support.microsoft.com/default.aspx?scid=kb;en-us;320828
除了密钥存档设置,可以定义一些影响所有证书的常规选项(包括不启用密钥存档的选项)。包括:
| • | Minimum key size 指定为此证书生成的密钥的最小大小(以比特为单位)。 |
| • | Cryptographic service providers 是一个用于为给定模板注册证书的加密服务提供商 (CSP) 列表。选择一个或多个 CSP 将该证书配置为仅可以使用这些 CSP。如果没有选择特定 CSP,该证书注册将应用于任何已经安装的 CSP,但将使用列举列表中的第一个 CSP。CSP 必须安装在该 CSP 的客户端工作站上,以便在注册期间使用。如果选择了一个特定 CSP 但在客户机上不可用,注册将失败。 |
注意:通过为厂商安装与 CSP 有关的文件,可以添加第三方 CSP。在安装 CSP 后证书模板管理单元被打开,新安装的 CSP 将出现在可用 CSP 列表中。
在建立证书模板时,必须定义接受方名称。该名称包含在所颁发的证书模板中,并且必须唯一标识接受方。接受方名称可以在证书请求期间使用接受方的身份验证名称自动建立,也可以由接受方明确定义并包含在证书请求中(图 3)。
接受方名称中包含许多选项,在证书请求过程中根据 Active Directory 信息建立接受方名称时,还包含特定的配置设置。接受方名称的格式可以定义为
| • | None 不为该字段强制定义任何名称格式。 |
| • | Common name 证书颁发机构从通过 Active Directory 获得的请求方的公共名称 (CN) 创建接受方名称。接受方名称在一个域内应该是唯一的,但在一个企业中可以并不唯一。 |
| • | Fully distinguished name 证书颁发机构从通过 Active Directory 获得的完全可区分名称创建接受方名称。这可以保证该名称在企业中是唯一的。 |
此外,您可以选择在接受方名称中包括电子邮件名称。该信息从一个帐户的电子邮件属性载入,并且包含在作为接受方名称一部分的公共名称或完全可区分名称中。
除接受方名称外,您也可以选择在所颁发的证书的备用接受方名称中包含的名称格式。可用的备用接受方名称格式包括
| • | E-mail name 如果 e-mail name 字段被载入 Active Directory 用户对象中,该电子邮件名称将用于用户帐户。 注意:用户证书需要电子邮件名称。如果电子邮件名称未载入用户的 Active Directory 中,该用户的证书请求将失败。 |
| • | DNS name 为计算机帐户使用请求证书的接受方的完全限定域名 (FQDN)。 |
| • | User principal name (UPN) 用户主体名称是 Active Directory 用户对象的一部分,将用于用户帐户。 |
| • | Service principal name (SPN) 服务主体名称是 Active Directory 计算机对象的一部分,将用于计算机帐户。 |
如果将 Subject Name 选项设置为 Supply in the request,您应该为模板设置一个或多个颁发要求,以防止接受方使用任何接受方名称请求证书。这将使接受方很容易模拟其他接受方。颁发要求确保在颁发证书之前,检查和验证证书请求。
接受方可以使用另一个接受方名称请求证书的唯一情况,仅是请求方具有基于注册代理模板的证书时。该注册代理模板允许接受方代表其他接受方请求证书。
注意:客户端上并不存在用户界面,无法在证书请求中提供接受方名称。如果您需要提供接受方名称,必须使用 XEnroll.dll ActiveX 控件以编程方式执行证书请求。
Issuance Requirements 选项卡(图 4)允许将更高保证级别的证书置于挂起状态,直到在颁发之前审阅了该证书。这允许 CMC 请求的多个签名者存在。有关 CMC 的更多信息,请参见 CMS 中的 RFC 2797 证书管理信息。
当启用 CA certificate manager approval 时,证书被置于挂起状态,而不是立即被颁发。在处于挂起状态时,证书请求由证书管理者校验,以确保颁发的证书处于较高的保证级别。
以下设置为基于模板的颁发证书配置了身份验证和签名要求:
| • | CA certificate manager approval 所有证书都被放在挂起容器中,以便证书管理者颁发或拒绝。任何定义的证书管理者都可以颁发或拒绝此类证书请求。 |
| • | This number of authorized signatures 该设置要求在颁发 CMC 证书之前由一个或多个授权方以数字方式对 CMC 证书请求进行签名。 注意:定义授权签名的数量启用几个其他配置参数。 |
| • | Policy type required in signature 仅在设置了授权签名的数量时,启用该选项。该选项定义了签名证书中需要何种特定的应用程序策略、发布策略或以上两种策略。这就是证书颁发机构确定签名对授权颁发接受方证书是否适用的方式。 |
| • | Application policy 该选项指定了必须包含在用于对证书请求进行签名的签名证书中的应用程序策略。当将 Policy type required in signature 设置为 Application policy 或 both application and issuance policy 时,启用该选项。 |
| • | Issuance policy 该选项指定了必须包含在用于对证书请求进行签名的签名证书中的发布策略。当将 Policy type required in signature 设置为 Issuance policy 或 both application and issuance policy 时,启用该选项。 |
交叉证书颁发机构证书的颁发是定义颁发要求的一个示例。该证书模板要求签名证书包括图 5 中所示的 Qualified Subordination Application Policy OID。
如图所示,必须由包含限定的下一级别 OID 的证书对交叉证书颁发机构证书请求进行签名。
另外,您也可以确定证书续订是否支持同样的颁发要求,或者证书存储中相同模板的现有的有效证书是否满足证书颁发的最低要求。
注意:有关颁发证书中包含的应用程序和发布策略 OID 的信息,请参见“Extensions 选项卡”一节。
Superseded Templates 选项卡(图 6)允许您使用一个修改过的版本 2 证书模板取代现有的证书模板。
Superseded Templates 选项卡允许您重新部署版本 2 证书,确保更新的证书可以取代该证书先前的版本或用于同样用途的其他证书模板。您可以
| • | 用版本 1 证书模板取代版本 2 证书模板 |
| • | 用版本 2 证书模板取代版本 2 证书模板 |
| • | 用通用版本 2 证书模板取代多个现有的证书模板 |
注意:您可以通过强制所有证书所有者重新注册更新的证书模板,强制应用更新的证书模板。有关更多信息,请参见“重新注册证书所有者”一节。
Extensions 选项卡允许您为证书模板定义特定的应用程序策略、发布策略、证书接受方类型和密钥用途属性。以下小节详述了在证书模板中定义的各种扩展形式。
应用程序策略使您能够确定对特定的用途使用哪些证书。您可以广泛颁发证书,而不考虑这些证书被错误地用于非目的用途。
应用程序策略是通知目标接受方具有能够用于执行特定任务的证书的设置。在证书中它们由为给定的应用程序定义的对象标识符 (OID) 表示。该对象标识符包含在所颁发的证书中。当接受方提供其证书时,该证书由信任方进行检查,以验证该应用程序策略并确定其是否能够执行请求的操作。
注意: 应用程序策略与版本 1 证书模板中的 extended key usage 属性相似。因为一些 PKI 应用程序的实现可能无法理解应用程序策略,application policies 和 enhanced key usage 部分将同时出现在由 Microsoft CA 颁发的证书中。
下表显示了一些比较常用的应用程序策略及其相关 OID。
| 应用程序策略 | OID |
客户端身份验证 | 1.3.6.1.5.5.7.3.2 |
CA 加密证书 | 1.3.6.1.4.1.311.21.5 |
智能卡登录 | 1.3.6.1.4.1.311.20.2.2 |
文档签名 | 1.3.6.1.4.1.311.10.3.12 |
文件恢复 | 1.3.6.1.4.1.311.10.3.4.1 |
密钥恢复 | 1.3.6.1.4.1.311.10.3.11 |
Microsoft 信任列表签名 | 1.3.6.1.4.1.311.10.3.1 |
限定的下一级别 | 1.3.6.1.4.1.311.10.3.10 |
根列表签名者 | 1.3.6.1.4.1.311.10.3.9 |
证书策略,也称为发布策略,它定义了颁发证书的保证级别。CA 用一套定义的规则处理各个证书请求。证书颁发机构可以颁发一些不带身份验证证明的证书,并要求另一类接受方提交一些证明。这为不同的证书提供了不同级别的保证。这些保证级别作为发布策略在证书中显示。
注意:证书策略指在 RFC 2459 中描述的证书策略扩展标识符。
发布策略是一组在颁发证书时执行的管理规则。在证书中它们通过在证书颁发机构上定义的 OID 表示。该 OID 包含在颁发的证书中。当接受方提供其证书时,可以由目标对该证书进行检验,以验证发布策略并确定发布策略的级别是否足以执行请求的操作。
发布策略描述了证书颁发的条件。这提供了以某种特定方式对接受方的证书请求进行验证的保证级别。
可以为证书模板选择一个或多个发布策略。因为这些发布策略是带有相关对象标识符的简单文本标签,因此没有与它们相关的选项。唯一特殊的发布策略是 All issuance policies,它表明该策略包括所有其他策略。它通常是为证书颁发机构持有的证书保留的。
通常当在 PKI 层次之间配置限定的下一级别(交叉证书)时使用发布策略,以确保被其他组织的 PKI 识别的证书满足组织的颁发要求。
证书模板信息,也称为证书接受方类型,它定义了证书模板的用途。Windows Server 2003 CA 可以识别六种接受方类型:
| • | 密钥恢复代理 |
| • | 目录电子邮件复制 |
| • | 交叉验证的证书颁发机构 |
| • | 证书颁发机构 (CA) |
| • | 计算机 |
| • | User |
不能对证书模板信息扩展进行编辑。如果需要在证书中应用特定的接受方类型,您应该从包含所需的接受方类型的证书模板复制。一些为特定接受方类型定义的内部标志将证书模板的显示限于计算机或用户。选择复制错误的证书模板将阻止向目标注册观众显示证书模板。例如:用户帐户不能注册使用计算机证书模板。
证书使接受方能够执行特定的任务。为了帮助控制证书在目的用途之外的使用,为证书自动设置了相关限制。密钥用途即是一种限制方法,它决定了证书能够用于何种用途。这使管理员可以颁发仅能够用于特定任务的证书或者颁发用途广泛的证书。如果没有指定密钥用途,证书可以被用于任何用途。
对于签名,密钥用途限于以下一种或多种用途:
| • | 数字签名 |
| • | 签名为原件的证明(认可) |
| • | 证书签名 |
| • | CRL 签名 |
对于加密密钥的用途,可使用以下选项:
| • | Key exchange without key encryption |
| • | Key exchange only with key encryption |
Security 选项卡(图 8)允许您为特定的证书模板定义 DACL。分配给证书模板的权限定义了哪些安全主体能够读取、修改、注册或自动注册特定的证书模板。
能够分配给证书模板的权限包括
| • | Full Control 该权限允许安全主体定义证书模板的所有属性,包括证书模板的权限。 |
| • | Read 该权限允许安全主体在为证书注册时查看证书模板。安全主体需要具有该权限才能注册或自动注册某个证书;证书服务器需要具有该权限才能在 Active Directory 中查找证书模板。 |
| • | Write 该权限允许安全主体修改证书模板的属性,包括分配给证书模板的权限。 |
| • | Enroll 该权限允许安全主体为基于证书模板的证书注册。要为证书注册,安全主体还必须具有证书模板的 Read 权限。 |
| • | Autoenroll 该权限允许安全主体通过自动注册过程接收证书。Auto-enrollment 权限要求用户除了具有 Auto-enrollment 权限外还具有 Read 和 Enroll 权限。 |
注意:建议仅将证书模板权限分配给全局组或通用组。由于证书模板对象存储在配置名称上下文中,您不能使用域本地组分配权限。为简化管理,建议永远不要将证书模板权限分配给单独的用户帐户或计算机帐户。
为已验证用户组保留 Read 权限分配是最好的方法。该权限分配允许所有用户和计算机查看 Active Directory 中的证书模板。包括在计算机帐户的 SYSTEM 上下文中运行的 CA,以在将证书颁发给用户和计算机时查看证书模板。
注意:可以通过 Web 注册页将版本 2 证书模板分发到 Windows ME 和带 Service Pack 2 的 Windows 2000 客户端上。
在创建版本 2 证书模板后,下一步即是部署证书模板。部署包括在一个或多个证书颁发机构发布证书模板、定义哪些安全主体具有证书模板的 Enroll 权限以及确定是否为证书模板配置自动注册。
在证书模板 MMC 中创建了证书模板并且该证书模板已经复制到目录林中的所有域控制器中之后,可以发布该证书模板以便进行部署。发布证书模板主要应该确定哪些证书颁发机构将发布基于该证书模板的证书。
注意:请记住,版本 2 证书模板仅能由在 Windows Server 2003, Enterprise Edition 和 Windows Server 2003, Datacenter Edition 上运行的 Enterprise CA 颁发。
Enterprise CA 仅能颁发基于存在于证书颁发机构 MMC 控制台的证书模板容器中的证书模板的证书(图 9)。
证书模板被发布给配置名称上下文,该上下文存储在以下路径的目录林中的每个域控制器上:CN=Certificate Templates, CN=Public Key Services,CN=Services,CN=Configuration,DC=ForestRootDomain。每个证书模板作为配置名称上下文中的对象存在,并具有一个相关的 DACL,该 DACL 定义了安全主体能够对证书进行的特定操作。
有关权限的分配,请遵循以下建议:
| • | 仅将权限分配给全局组或通用组。在配置名称上下文中定义证书模板。权限仅应分配给全局组或通用组。不建议将权限分配给域本地组。权限仅在存在域本地组的域中能被识别,并可能导致权限的应用不一致。建议永远不要将权限直接分配给单独的用户帐户或计算机帐户。 |
| • | 要启用自动注册,用户或者计算机必须属于被赋予了Read、Enroll 和 Autoenroll 权限的域组。 |
| • | 要通过证书 MMC 控制台、基于 Web 的注册或自动续订启用注册,请将域或通用组设置为具有 Read 和 Enroll 权限。 |
| • | 对于证书续订,用户或计算机必须属于具有 Read 和 Enroll 权限的域安全组。无论是手动续订证书还是使用自动注册来实现续订证书都必须满足这一点。 |
| • | 限制仅为 CA 管理者授予 Write 和完全控制权限,可以确保不会对模板进行不当的配置。 |
自动注册允许 CA 管理员对用户和计算机进行配置,以自动注册证书、检索已经颁发的证书以及续订过期的证书,而无需接受方的参与。可将自动注册过程配置为不需要任何用户输入而进行的后台任务。
要正确配置接受方自动注册,管理员必须对将使用自动注册的证书模板的配置进行规划。证书模板中的若干设置直接影响接受方自动注册的行为,如下所示:
| • | 用户输入要求 在所需证书模板的 Request Handling 选项卡上,Require user input for auto-enrollment 复选框将更改自动注册的行为。当选中该复选框时,将为接受方提供获得或续订证书所需的任何信息。当该复选框被清除时,自动注册以静默方式运行,而不会通知接受方。 注意:由于智能卡必须提示用户提供其 PIN,当选择智能卡 CSP 时必须选中该选项。 |
| • | 限制自动注册证书模板的 CSP 的数量 如果在 Request Handling 选项卡(图 2)中选择了多个智能卡 CSP,当 Windows XP 客户端检索自动注册的证书并开始将其安装在智能卡上时,用户可能收到多个对话框。 |
| • | 不启用基于请求信息的接受方创建 如果在 Subject Name 选项卡(图 3)中启用 Supply in the request 选项,将禁用自动注册。这是因为启用该选项将提示接受方在请求中以交互方式创建接受方名称,该选项不能与自动注册一起使用。 |
| • | 颁发不需要多个授权的签名 在所需证书模板的 Issuance Requirements 选项卡(图 4)中配置多个授权的签名,将禁止接受方基于该模板自动注册。如果将授权的签名值设为 1,则请求者必须使用证书存储的有效证书中的私钥对该请求进行签名。该证书必须包括同一个选项卡中的 Application policy 和 Issuance policies 列表中指定的应用程序和/或发布策略。如果在请求者的证书存储中存在相应的证书,自动注册将使用该证书的私钥对该请求进行签名,并将自动获得和安装所请求的证书。例如:为了增强 EFS 证书分发的安全性,您可以创建一个自定义的版本 2 证书模板,要求在签名证书的应用程序策略中存在智能卡登录 OID (1.3.6.1.4.1.311.20.2.2)。 |
| • | 在所需证书模板的 Issuance Requirements 选项卡(图 4)中,Valid existing certificate 选项会影响接受方自动注册。该选项通知 CA,接受方在续订有效证书时不需要满足颁发要求。不能为初始证书自动注册的接受方可以使用自动注册对该证书进行续订。例如:可区分名称已经改变的用户仍然可以自动注册基于现有的有效证书的证书,而不是基于新的凭据的证书。 |
注意:有关配置自动注册的更多信息,请参见 Certificate Autoenrollment in Windows XP 白皮书,其地址为:http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/certenrl.mspx
您可以通过为用户所属的全局组或通用组定义适当的权限,来委托管理单个证书模板或创建任何证书模板的能力。
要委托特定证书模板的修改,请将证书模板的 Security 选项卡(图 8)中的 Read 和 Write 权限分配给全局组或通用组。如果还希望将管理权限委托给安全组,请分配完全控制权限,以便安全组能够为证书模板修改 DACL。
要将创建证书模板的能力委托给不是目录林根域中的域管理员组或企业管理员组的成员的用户,必须在 Active Directory 的配置名称上下文中定义适当的权限。
要委托所有证书模板的管理(包括复制和创建新证书模板的能力),您必须为用户所属的全局组或通用组分配以下权限:
| • | CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=ForestRoot container = Full Control permissions |
| • | 对 CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=ForestRoot 容器中的每个证书模板具有完全控制权限。单个证书模板并不继承分配给证书模板容器的权限。 |
| • | 对 CN=OID,CN=Public Key Services,CN=Services,CN=Configuration,DC= ForestRoot 容器具有完全控制权限。 |
注意: 要创建或复制现有的证书模板,用户仅需要具有 CN= Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=ForestRoot 和 CN=OID, CN=Public Key Services,CN=Services,CN=Configuration,DC= ForestRoot 容器的 Create Child 权限。
本节着眼于在规划版本 2 证书模板的所有方面时必须考虑的主题。本节提供创建证书模板的设计原则和处理证书模板时能够实现的最佳方法。
在创建版本 2 证书模板时,考虑以下设计原则:
| • | 定义接受方名称 与某个证书相关的私钥的所有者被称为 subject。接受方可以是用户、计算机、程序或者可能是对象或服务。由于接受方根据其具体类型的不同而有很大的不同,因此在证书请求中提供接受方名称时需要有一定的灵活性。Windows Server 2003 CA 可以自动建立接受方名称或向接受方请求名称。如果它自动提供接受方名称,则可以从 Active Directory 获得信息。您可以对该进程进行配置,使其包括或排除环境中的有用信息。如果将其配置为手动提供接受方名称,则接受方使用基于 Web 的注册页在证书请求中提供该信息。 | ||||
| • | 定义证书的有效期 基于证书的加密使用公钥加密保护数据并以数字方式对数据进行签名。随着时间的推移,从理论上讲可以收集受公钥保护的数据,并试图将私钥从中分离。如果提供了充分的时间和资源,该私钥会受到威胁,导致所有被保护的数据失去保护。由于随时间的推移证书会受到威胁,因此应该建立限定的证书有效期。 | ||||
| • | 确定证书用途 可以颁发多个仅用于一个用途的特定证书,或颁发较少的具有广泛用途的证书。这取决于环境、所需要的管理级别、可能对接受方产生的影响,以及多个证书对将使用它们的应用程序的影响。 一个证书管理策略创建许多逐级模板(每个作业功能一个),例如:文件加密或代码签名。然后,接受方可以根据相应功能的需要为每个证书注册。这使接受方可以从少数证书开始,仅获得经过一段时间之后他们所需的新证书。该策略的缺点是,接受方最终可能会处理大量证书和经过一段时间之后变得很难管理的私钥。 另外,可以创建少数用途较广泛的、包含接受方大多数通用组的作业功能的证书模板。例如,如果大多数员工将他们的证书用于邮件签名、加密以及文件加密,则可以创建一个在同一证书中允许各种功能的模板。这使大多数接受方可以获得一个包含各种用途的证书。该策略的缺点是没有对证书使用的逐级控制。管理员不能决定子组在没有修改模板或改变策略的情况下不能对邮件进行加密。 | ||||
| • | 确定执行哪个 CSP 版本 2 证书模板允许您定义一个或多个可用于模板的加密服务提供商 (CSP)。这使管理者能够控制接受方在企业中能使用何种加密。这在安全性极为重要时十分有用。由于接受方将 CSP 用于任何加密服务的两部分,加密和解密或签名和确定签名都是必须进行的,以确保所有接受方都能使用同一 CSP。最简便的方法是,将每个证书模板配置为仅识别一个完全相同的 CSP。应识别哪个 CSP 由管理员负责,具体取决于所所需的安全级别、证书的目的用途和是否存在安全硬件(如智能卡)。 | ||||
| • | 确定密钥长度 每个 CSP 为加密或数字签名提供一个或多个加密算法。您可以定义证书模板允许的最小密钥大小。一般情况下,使用同一种算法时,较长的密钥与较短的密钥相比可以提供更多保护,但是较长密钥的生成和使用时间较长。应该选择可以确保所需的保护而不影响性能的最小密钥大小。 | ||||
| • | 确定智能卡用途 每种智能卡至少具有一个相关的 CSP,该 CSP 必须由证书模板执行以便使智能卡可以使用。如果该智能卡与模板不相关,它将不能被识别并且证书模板会产生错误。确保在证书模板中为在您的环境中所部署的智能卡启用所有的智能卡 CSP。 | ||||
| • | 规划部署方法 证书通常是手动或自动部署的。使用 Web 注册页、证书 MMC 控制台或通过 CryptoAPI 或 CAPICOM 编程接口可以进行手动注册。自动注册需要在“自动注册注意事项”一节中所描述的配置。 | ||||
| • | 规划密钥存档 Windows Server 2003, Enterprise Edition 和 Windows Server 2003, Datacenter Edition CA 可以提供私钥的密钥存档。在为证书模板规划密钥存档设置时,请考虑以下设置:
|
在规划证书模板部署时,请使用以下最佳方法:
| • | 不要删除证书发布者安全组。 证书发布者安全组包含每个证书发布机构的计算机帐户,并且在向 Active Directory 发布证书模板时使用。如果将该组删除,证书颁发机构可能不会正确地向 Active Directory 发布证书。为避免此现象发生,不应删除该组,并且不应修改该组的成员。 |
| • | 向每个证书发布者组添加 CA 计算机。 证书发布者组是存在于目录林的每个域中的域本地组。在每个域中,应该向证书发布者组添加所有 CA 计算机帐户。 |
| • | 不要超过证书颁发机构的颁发证书有效期。 证书有效期是证书颁发机构 (CA) 的证书有效期的子集。所有证书(包括 CA 证书)都有一个到期日期,该日期之后这些证书不再有效。因此,不能颁发有效期超过颁发 CA 有效期的证书。颁发这种证书将会导致其有效期比颁发 CA 证书的有效期长,这将违反证书链接规则。因此,在 CA 证书过期或所请求的模板续订周期比 CA 证书所剩余的有效期长之前,CA 将继续颁发证书。如果证书模板要求其有效期比 CA 证书的有效期长,所颁发证书的有效期被截为 CA 证书有效期所剩余的时长。 |
| • | 在部署前规划证书模板。 可以通过多种方式将证书颁发给接受方,包括手动注册、自动注册和 Web 注册。另外,有多种证书策略,包括向所有接受方颁发一个全包含的证书和根据需要向接受方颁发多个应用程序专用的证书。由于存在多种选项,因此应该在证书部署之前做好规划。 |
| • | 在从Windows 2000 升级之前,升级 Active Directory 中的证书模板。 Windows Server 2003, Enterprise Edition 和 Windows Server 2003, Datacenter Edition 证书颁发机构使用比 Windows 2000 CA 版本更新的证书模板。在升级证书颁发机构以确保正确操作之前,必须对这些模板进行升级。 |
| • | 从功能与目的模板最相似的现有模板复制新的模板。 从现有的模板复制新的证书模板。许多设置都是从最初的模板复制而来的。因此,将一个证书模板复制到另一个类型完全不同的证书模板可能会携带一些非目的设置。在复制模板时,请检查初始模板的接受方类型,并确保复制与目的模板功能相似的模板。尽管复制证书模板后可以对模板的大多数设置进行编辑,但是不能更改接受方类型。 |
| • | 确定证书模板的发布点。 基于组织所执行的管理模型和证书模板的用途,确定哪些 CA 将颁发特定的证书模板。例如,如果管理模型是基于项目的管理模型,则适合仅将证书模板分配给与该项目相关联的 CA。另一方面,如果证书模板在组织中广泛使用,则适合让所有 CA 颁发证书模板以便在某个 CA 不可用时提供容错。 |
| • | 使所颁发的证书数量最少。 考虑使用可以用于多个作业任务的多用途证书,而不是为每个必须执行的作业任务颁发单独的证书。这可以减少颁发的证书的数量并降低当用户必须选择提供给应用程序的证书时的复杂性。 |
创建一个新的版本 2 证书模板
1. | 以企业管理员组成员、目录林根域的域管理员组成员或者被授予执行该任务的权限的用户的身份登录。 |
2. | 打开证书模板 MMC 控制台 (Certtmpl.msc)。 |
3. | 在详细信息窗格中,右键单击一个将成为新证书起始点的现有的证书,然后单击 Duplicate Template。 |
4. | 在 General 选项卡上,输入模板显示名称和模板名称,然后单击 OK。 |
5. | 为新创建的版本 2 证书模板定义任何附加属性。 |
在创建版本 2 证书模板时,可以定义颁发的证书中所包括的应用程序策略和发布策略。定义应用程序策略和发布策略需要完成三项任务:
| • | 获取应用程序策略和发布策略的对象标识符 |
| • | 定义应用程序策略和发布策略 |
| • | 在 PKI 层次之间映射发布策略 |
如果定义自定义应用程序策略或发布策略,您必须获取该策略的对象标识符。
获取对象标识符
1. | 以企业管理员组成员、目录林根域的域管理员组成员或者被授予执行该任务的权限的用户的身份登录,如“委托模板管理”一节所述。 |
2. | 打开证书模板 MMC 控制台 (Certtmpl.msc)。 |
3. | 在详细信息窗格中,右键单击要对其进行修改的证书模板,然后单击 Properties。 |
4. | 在 Extensions 选项卡中,单击 Application Policies,然后单击 Edit。 |
5. | 在 Edit Application Policies Extension 对话框中,单击 Add。 |
6. | 在 Add Application Policy 中,确保您正在创建的应用程序不存在,然后单击 New。 |
7. | 在 New Application Policy 对话框中,为新的应用程序策略提供名称,注意生成的 OID,然后单击 OK。 |
注意:您也可以通过编辑证书策略(而不是应用程序策略)添加新的对象标识符。
定义任何自定义应用程序策略之后,您就可以将该应用程序策略与证书模板相关联,步骤如下:
1. | 以企业管理员组成员、目录林根域的域管理员组成员或者被授予执行该任务的权限的用户的身份登录。 |
2. | 打开证书模板 MMC 控制台 (Certtmpl.msc)。 |
3. | 在详细信息窗格中,右键单击要进行更改的证书模板,然后单击 Properties。 |
4. | 在 Extensions 选项卡中,单击 Application Policies,然后单击 Edit。 |
5. | 在 Edit Application Policies Extension 中,单击 Add。 |
6. | 在 Add Application Policy 中,单击所需的应用程序策略,然后 OK。 |
定义任何自定义发布策略之后,您就可以将该发布策略与证书模板相关联,步骤如下:
1. | 以企业管理员组成员、目录林根域的域管理员组成员或者被授予执行该任务的权限的用户的身份登录。 |
2. | 打开证书模板 MMC 控制台 (Certtmpl.msc)。 |
3. | 在详细信息窗格中,右键单击要进行更改的证书模板,然后单击 Properties。 |
4. | 在 Extensions 选项卡中,单击 Certificate Policies,然后单击 Edit。 |
5. | 在 Edit Issuance Policies Extension 中,单击 Add。 |
6. | 在 Add Issuance Policy 中,单击 New。 |
7. | 提供所需的信息。 |
在执行限定的下一级别时,必须将您组织中的发布策略与在另一个组织中定义的发布策略相关联。在 policy.inf 文件中定义策略映射,该文件用于生成交叉证书颁发机构证书。
在 policy.inf 文件中,必须包括一个 [PolicyMappingsExtension],它将在 policy.inf 文件中所列的策略与在其他 PKI 层次中所定义的策略相映射。以下代码示例显示了 policy.inf 文件的一部分,该文件在两个组织之间映射高、中、低保证级别的发布策略。
[PolicyStatementExtension] Policies = HighAssurancePolicy, MediumAssurancePolicy, LowAssurancePolicy CRITICAL = FALSE [HighAssurancePolicy] OID = 1.3.6.1.4.1.311.21.8.256.257.258.259.1.402 [MediumAssurancePolicy] OID = 1.3.6.1.4.1.311.21.8.256.257.258.259.1.401 [LowAssurancePolicy] OID = 1.3.6.1.4.1.311.21.8.256.257.258.259.1.400 [PolicyMappingsExtension] 1.3.6.1.4.1.311.21.8.256.257.258.259.1.400 = 1.3.6.1.4.1.311.21.8.354.232.582.111.1.400 1.3.6.1.4.1.311.21.8.256.257.258.259.1.401 = 1.3.6.1.4.1.311.21.8.354.232.582.111.1.401 1.3.6.1.4.1.311.21.8.256.257.258.259.1.402 = 1.3.6.1.4.1.311.21.8.354.232.582.111.1.402 critical = yEs
该示例将高、中、低保证级别的发布策略的 OID 映射到存在于其他组织的 PKI 中的 OID。其他组织必须定义一个 policy.inf 文件,该文件以相反的方向映射 OID 以便两个组织都能识别这些 OID。
本节说明怎样为特定的证书模板以及用于管理证书模板的委托权限定义权限。
定义允许特定的安全主体对基于某个证书模板的证书进行注册的权限
1. | 以企业管理员组成员、目录林根域的域管理员组成员或者被授予执行该任务的权限的用户的身份登录。 |
2. | 打开证书模板 MMC 控制台 (Certtmpl.msc)。 |
3. | 在详细信息窗格中,右键单击要进行更改的证书模板,然后单击 Properties。 |
4. | 在 Security 选项卡中,确保为已验证身份的用户分配了 Read 权限。 这可以确保网络中所有已验证身份的用户都可以看到该证书模板。 |
5. | 在 Security 选项卡中,单击 Add。添加一个包含证书模板需要 Enroll 权限的所有安全主体的全局组或通用组,然后单击 OK。 |
6. | 在 Security 选项卡中,选择新添加的安全组,然后为 Read 和 Enroll 权限分配 Allow 权限。 |
7. | 单击 OK。 |
定义允许特定的安全主体对基于某个证书模板的证书进行自动注册的权限
1. | 以企业管理员组成员、目录林根域的域管理员组成员或者被授予执行该任务的权限的用户的身份登录。 |
2. | 打开证书模板 MMC 控制台 (Certtmpl.msc)。 |
3. | 在详细信息窗格中,右键单击要进行更改的证书模板,然后单击 Properties。 |
4. | 在 Security 选项卡中,单击 Add。添加一个包含证书模板需要 Enroll 权限的所有安全主体的全局组或通用组,然后单击 OK。 |
5. | 在 Security 选项卡中,选择新添加的安全组,然后为 Read、Enroll 和 Auto-enroll 权限分配 Allow 权限。 |
6. | 单击 Apply。 |
注意:有关配置自动注册的更多信息,请参见 Certificate Autoenrollment in Windows XP 白皮书,其地址为:http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/certenrl.mspx
委托所有模板的管理(包括复制和创建新模板的能力)
1. | 以企业管理员组成员、目录林根域的域管理员组成员或者被授予执行该任务的权限的用户的身份登录。 |
2. | 打开证书模板 MMC 控制台 (Certtmpl.msc)。 |
3. | 在控制台树中,右键单击 ADSI Edit,然后单击 Connect。 |
4. | 在 Connection Point 部分的 Connection 对话框中,单击 Naming Context,从 Naming Context 下的列表中选择 Configuration Container,然后单击 OK。 |
5. | 在控制台树中,展开 ADSI 编辑。 |
6. | 在控制台树中,展开 Configuration Container。 |
7. | 在控制台树中,扩展 CN=Configuration,DC=ForestRootDomain (其中 ForestRootDomain 为目录林根域的 LDAP 会区分名称)。 |
8. | 在控制台树中,展开 CN=Services。 |
9. | 在控制台树中,展开 CN=Public Key Services。 |
10. | 在控制台树中,右键单击 CN=Certificate Templates,然后单击 Properties。 |
11. | 在 CN=Certificate Templates Properties 对话框的 Security 选项卡中,单击 Add。添加一个包含特定用户(要将证书创建和管理权限委托给他)的全局组或通用组,然后单击 OK。 |
12. | 在 Security 选项卡中,选择新添加的安全组,确保为安全组的 Full Control 权限分配了 Allow 权限,然后单击 OK。 |
13. | 在控制台树中,右键单击 CN=OID,然后单击 Properties。 |
14. | 在 CN=OID Properties 对话框的Security 选项卡中,单击 Add。添加一个包括特定用户(要将证书创建和管理权限委托给他)的全局组或通用组,然后单击 OK。 |
15. | 在 Security 选项卡中,选择新添加的安全组,确保为安全组的 Full Control 权限分配了 Allow 权限,然后单击 OK。 |
16. | 关闭 ADSI Edit。 |
17. | 确保为将完全控制权限分配给 CN=Certificate Templates 和 CN=OID 容器的安全组的所有列在证书模板 MMC 控制台中的证书模板分配了完全控制权限。 |
定义证书颁发机构颁发的证书模板
1. | 以企业管理员组成员、目录林根域的域管理员组成员或者被授予执行该任务的权限的用户的身份登录。 |
2. | 从 Administrative Tools 打开证书颁发机构 MMC 控制台。 |
3. | 在控制台树中,展开 CAName(其中 CAName 是 Enterprise CA 的名称)。 |
4. | 在控制台树中,选择 Certificate Templates 容器。 注意:如果使用 Windows 2000 CA,该容器名为 Policy Settings。 |
5. | 右键单击 Certificate Templates,然后单击 New、Certificate Template to Issue。 |
6. | 在 Enable Certificate Templates 对话框中,选择希望 CA 颁发的证书模板,然后单击 OK。 注意:如果证书模板未在 Enable Certificate Templates 对话框中列出,则 CA 已经被配置为颁发该证书模板,或者没有完成目录林的所有域控制器中的证书模板复制。 |
新选定的证书模板将出现在详细信息窗格中。
删除证书模板仅是断开证书与 CA 之间的链接,而不是将其从证书模板存储中物理删除。
将某个证书模板从目前由证书颁发机构颁发的证书模板中删除
1. | 以企业管理员组成员、目录林根域的域管理员组成员或者被授予执行该任务的权限的用户的身份登录。 |
2. | 从 Administrative Tools 打开证书颁发机构 MMC 控制台。 |
3. | 在控制台树中,展开 CAName(其中 CAName 是 Enterprise CA 的名称)。 |
4. | 在控制台树中,选择 Certificate Templates 容器。 注意:如果使用 Windows 2000 CA,该容器名为 Policy Settings。 |
5. | 在详细信息窗格中,右键单击要从 CA 中删除的证书模板,然后单击 Delete。 |
6. | 在 Disable Certificate Templates 对话框中,单击 OK。 |
证书模板不再出现在详细信息窗格中。
该过程也称为取代某个现有的模板,它定义版本 2 证书要替换哪个现有模板。
1. | 以企业管理员组成员、目录林根域的域管理员组成员或者被授予执行该任务的权限的用户的身份登录。 |
2. | 打开证书模板 MMC 控制台 (Certtmpl.msc)。 |
3. | 在详细信息窗格中,右键单击要进行更改的证书模板,然后单击 Properties。 |
4. | 单击 Superseded Templates 选项卡。 |
5. | 单击 Add。 |
6. | 单击一个或多个要取代的模板,然后单击 OK。 |
如果您想要立即实现对所有现有证书所有者证书模板的更改,可以强制进行重新注册,步骤如下:
1. | 以企业管理员组成员、目录林根域的域管理员组成员或者被授予执行该任务的权限的用户的身份登录。 |
2. | 打开证书模板 MMC 控制台 (Certtmpl.msc)。 |
3. | 在详细信息窗格中,右键单击您要为所有证书所有者重新注册的证书模板,然后单击 Reenroll all Certificate Holders。 |
Windows XP 引入了对 802.1x 和无线网络的本机支持。要启用强安全性,用户和计算机都需要身份验证证书以验证 RADIUS(IAS 服务器)验证点的身份。Windows 2000 证书颁发机构支持具有版本 1 计算机证书模板的计算机的 802.1x 证书请求以及具有任何包括客户端身份验证 EKU 的证书模板的用户证书。如果版本 2 证书模板用于计算机自动注册,则正确配置证书模板十分重要。如果将计算机模板复制到版本 2 证书中,管理员必须确保 DNS 名称包含在证书的接受方名称 (CN) 中。Windows XP 无线客户端要求计算机的 DNS 名称包含在接受方中,以便适当使用 IAS (RADIUS) 服务器及对其进行身份验证。
重要信息:如果 DNS 完全限定域名超过 64 个字符,该名称将在证书注册期间被截断,并且对无线身份验证无效。
有关更多信息,请参见位于以下地址的白皮书:http://www.microsoft.com/windowsxp/pro/techinfo/deployment/wireless/default.asp
| • | Troubleshooting Certificate Status and Revocationhttp://www.microsoft.com/technet/security/topics/crypto/tshtcrl.mspx |
| • | Certificate Autoenrollment in Windows XPhttp://www.microsoft.com/technet/prodtechnol/winxppro/maintain/certenrl.mspx |
| • | PKI Enhancements in Windows XP Professional and Windows Server 2003http://www.microsoft.com/technet/prodtechnol/winxppro/plan/pkienh.mspx |
| • | Data Protection and Recovery in Windows XPhttp://www.microsoft.com/technet/prodtechnol/winxppro/deploy/cryptfs.mspx |
| • | Windows Server 2003, Enterprise Edition 帮助文档 |
证书模板容器包含在 Active Directory 目录林中定义的证书模板。每个证书模板属于类 pKICertificate。通过使用证书模板 MMC 管理单元管理每个证书模板。Windows 2000 包括 24 个默认的证书模板,Windows Server 2003 包括 29 个默认的模板。每个模板都存储在配置名称上下文中的以下位置:
CN=<name of template>,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC= ForestRootDomain
Active Directory 架构中定义了以下版本 1 证书模板的属性。
| 属性 | 描述 |
Cn | 证书类型的公共名称。 |
distinguishedName | 证书类型的可区分名称。 |
displayName | 证书类型的显示名称。 |
pKIExtendedKeyUsage | 扩展的密钥用途 OID 的数组。 |
pKIDefaultCSPs | 默认 CSP 列表。DWORD、CSP 名称。 |
pKICriticalExtensions | 关键扩展列表。 |
revision | 模板的主版本。 |
templateDescription | 已过时的属性。 |
flags | 一般注册标志。 |
pKIDefaultKeySpec | 默认密钥长度和构造规范。 |
NTSecurityDescriptor | 安全描述符名称。 |
pKIKeyUsage | 密钥用途扩展。 |
pKIMaxIssuingDepth | 基本约束。DWORD 值。 |
pKIExpirationPeriod | 有效期。负的 FILETIME 值。 |
pKIOverlapPeriod | 续订周期。负的 FILETIME 值。 |
Active Directory 架构中定义了以下版本 2 证书模板的属性。
| 属性 | 描述 |
msPKI-Template-Schema-Version | 模板的架构版本。 |
msPKI-Template-Minor-Revision | 模板的次版本。 |
msPKI-RA-Signature | 在引用该模板的请求中所需的 RA 签名的数量。 |
msPKI-Minimal-Key-Size | 所需的最小密钥大小。 |
msPKI-Template-Cert-Template-OID | 该模板的 OID。 |
msPKI-Supersede-Templates | 该模板取代的模板的名称。 |
msPKI-RA-Policies | 所需的 RA 发布策略 OID。 |
msPKI-RA-Application-Policies | 所需的 RA 应用程序策略。 |
msPKI-Certificate-Policy | 证书发布策略 OID 由策略模块置于 OID_CERT_POLICIES 扩展中。 |
msPKI-Certificate-Application-Policy | 证书应用程序策略 OID。 |
msPKI-Enrollment-Flag | 注册标志。 |
msPKI-Private-Key-Flag | 私钥标志。 |
msPKI-Certificate-Name-Flag | 接受方名称标志。 |
Active Directory 架构中定义了以下注册标志。
| 标志 | 描述 | ||
CT_FLAG_INCLUDE_SYMMETRIC_ALGORITHMS
| 在请求中包括 S/MIME 对称算法。 | ||
CT_FLAG_PEND_ALL_REQUESTS
| 所有证书请求都被挂起。 | ||
CT_FLAG_PUBLISH_TO_KRA_CONTAINER
| 将证书发布给 Active Directory 中的 KRA(密钥恢复代理容器)。 | ||
CT_FLAG_PUBLISH_TO_DS
| 将生成的证书发布给 Active Directory 的用户对象上的 userCertificate 属性。 | ||
CT_FLAG_AUTO_ENROLLMENT_CHECK_USER_DS_CERTIFICATE
| 如果用户以前已经使用同一模板名称将某个证书发布给 Active Directory 中的 userCertificate 属性,自动注册客户端不会为新证书注册。 | ||
CT_FLAG_AUTO_ENROLLMENT
| 该证书适合自动注册。 | ||
CT_FLAG_PREVIOUS_APPROVAL_VALIDATE_REENROLLMENT
| 以前颁发的证书将验证后续的注册请求。 | ||
CT_FLAG_DOMAIN_AUTHENTICATION_NOT_REQUIRED
| 已过时。 | ||
CT_FLAG_USER_INTERACTION_REQUIRED
| 使用自动注册进行注册要求用户交互。 | ||
CT_FLAG_ADD_TEMPLATE_NAME
| 已过时。 | ||
CT_FLAG_REMOVE_INVALID_CERTIFICATE_FROM_PERSONAL_STORE
| 在自动注册期间,从本地客户机上的个人存储中删除无效的(过期的或吊销的)证书。 |
Active Directory 架构中定义了以下接受方名称标志。
| 标志 | 描述 | ||
CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT
| 注册应用程序必须提供接受方名称。 | ||
CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT_ALT_NAME
| 注册的应用程序必须在请求中提供 subjectAltName。 | ||
CT_FLAG_SUBJECT_REQUIRE_DIRECTORY_PATH
| 接受方名称应该是基于 Active Directory 路径的完全 DN(可区分名称)。 | ||
CT_FLAG_SUBJECT_REQUIRE_COMMON_NAME
| 接受方名称应该是公共名称。 | ||
CT_FLAG_SUBJECT_REQUIRE_EMAIL
| 接受方名称包括电子邮件名称。 | ||
CT_FLAG_SUBJECT_REQUIRE_DNS_AS_CN
| 接受方名称包括作为公共名称的 DNS 名称。 | ||
CT_FLAG_SUBJECT_ALT_REQUIRE_DNS
| 接受方备用名称包括 DNS 名称。 | ||
CT_FLAG_SUBJECT_ALT_REQUIRE_EMAIL
| 接受方备用名称包括电子邮件名称。 | ||
CT_FLAG_SUBJECT_ALT_REQUIRE_UPN
| 接受方备用名称需要 UPN。 | ||
CT_FLAG_SUBJECT_ALT_REQUIRE_DIRECTORY_GUID
| 接受方备用名称需要目录 GUID(用于域控制器)。 | ||
CT_FLAG_SUBJECT_ALT_REQUIRE_SPN
| 接受方备用名称需要 SPN(服务主体名称)。 | ||
CT_FLAG_SUBJECT_ALT_REQUIRE_DIRECTORY_GUID
| 接受方备用名称需要目录 GUID。 | ||
CT_FLAG_SUBJECT_ALT_REQUIRE_SPN
| 接受方备用名称需要 SPN。 |
Active Directory 架构中定义了以下模板的私钥标志。
| 标志 | 描述 | ||
- 私钥标志 | |||
CT_FLAG_ALLOW_PRIVATE_KEY_ARCHIVAL
| 允许/需要私钥存档。 | ||
CT_FLAG_EXPORTABLE_KEY
| 将私钥标记为可以导出。 |
Active Directory 架构中定义了以下模板通用标志:
| 标志 | 描述 | ||
CT_FLAG_MACHINE_TYPE
| 计算机证书类型。 | ||
CT_FLAG_IS_CA
| CA 证书类型。 | ||
CT_FLAG_IS_CROSS_CA
| 交叉 CA 证书类型。 | ||
CT_FLAG_IS_DEFAULT
| 在不能更改的所有 V1 模板上设置的默认证书类型。 | ||
CT_FLAG_IS_MODIFIED
| 类型已经被修改(只读)。 | ||
CT_MASK_SETTABLE_FLAGS
| 已过时。 |