证书模板和颁发政策概览

本页面简要介绍了如何使用证书模板、颁发政策和证书名称限制条件在 Certificate Authority Service 中实现政策控制。

通过政策控制,您可以控制证书授权机构 (CA) 池可以颁发的证书类型。政策控制措施分为两种:粗粒度和细粒度。粗略的政策会应用 CA 池特定的限制条件。精细的政策决定了特定用户可以在 CA 池上执行的操作。

证书模板

如果您有明确定义的证书颁发场景,可以使用证书模板。您可以使用证书模板在由不同 CA 池颁发的证书之间实现一致性。您还可以使用证书模板来限制不同个人可以颁发的证书类型。

如需了解证书模板,请参阅创建证书模板

证书颁发政策

CA 管理器可以将证书颁发政策附加到 CA 池,以定义对 CA 池中的 CA 可以颁发的证书类型的限制。颁发政策可以定义对证书身份、证书生命周期、密钥类型、证书请求模式和 X.509 扩展程序的限制。颁发政策还可以包含一组应用于所有传入证书请求的 X.509 扩展。

通过颁发政策,您可以对整个 CA 池应用特定限制。例如,您可以使用颁发政策来强制执行以下条件:

  • 已颁发的所有证书的主题中均为 O=My organization
  • 所有 DNS 名称都以 .my-org-domain.com 结尾。
  • CA 池只能颁发服务器 TLS 证书。

如果属于以下一种或两种情况,我们建议您使用证书颁发政策:

  1. 您的 CA 池旨在根据明确定义的单个配置文件颁发证书。
  2. 您想为 X.509 扩展程序定义通用基准,以及适用于所有证书颁发配置文件的其他限制。

如需详细了解颁发政策,请参阅向 CA 池添加证书颁发政策

CA 证书名称限制条件

CAS 按照 RFC 5280 名称限制条件部分的定义,在 CA 证书中强制执行名称限制条件。 它可让您控制在 CA 颁发的证书中允许或排除哪些名称。

例如,您可以创建具有名称限制条件的 CA,以强制执行以下条件:

  • 只有 my-org-domain.com 及其子网域可用作 DNS 名称。
  • 不得将 untrusted-domain.com 及其子网域用作 DNS 名称。

名称限制条件适用于 CA 证书。只能在创建 CA 期间指定,并且以后不能更新。

政策冲突

结合使用不同的政策控制机制时,不同级别的政策可能会发生冲突。本部分介绍如何强制执行政策控制功能,并就如何避免政策冲突提供指导。

政策执行

请求证书时,系统会在不同的层评估政策控制措施。

首先,系统会评估请求属性的 IAM 条件绑定,以确保调用方拥有创建证书或使用证书模板所需的权限。

在证书创建期间,系统会根据标准化证书请求验证 CA 池和证书模板颁发政策。系统会将 CA 池的证书颁发政策和证书模板中的 X.509 扩展添加到证书,并可以根据这些政策删除某些值。

在为证书签名之前,系统会根据证书验证 CA 证书中的名称限制,以确保主题符合相关规定。

颁发政策冲突

下方列出了各种错误,这些错误并不全面,这些错误中证书模板的颁发政策可能与 CA 池的颁发政策冲突。

  • 证书模板包含 CA 池禁止的预定义值。
  • 证书模板包含的 X.509 值与 CA 池基准值不同。

在所有这些情况下,API 都会返回无效参数错误。

CEL 冲突

CEL 提供了实现多样化表达式的功能。在某些情况下,CA 池的颁发政策和证书模板上的 CEL 表达式可能会发生冲突。这些冲突不允许从 CA 池颁发证书。例如,假设 CA 池具有 CEL 表达式,该表达式强制证书的通用名称以 .example.com 结尾,而证书模板具有 CEL 表达式,该表达式强制证书的通用名称以 .example.net 结尾。由于这两个 CEL 表达式对同一字段设置了不同的限制,因此所有证书颁发请求都会失败。

如果您同时使用证书颁发政策和证书模板,我们建议您确保它们的 CEL 表达式不冲突。

后续步骤