政策控制措施概览

政策控制措施会强制执行证书授权机构 (CA) 的运营标准以及 CA 签发的证书的标准。政策控制是指您制定的一系列规则和限制,用于定义 CA 将如何颁发证书,以及请求中可以包含哪些参数和接受哪些值。在 Certificate Authority Service 中,政策控制分为两种类型:

  • 粗粒度政策,例如证书颁发政策:证书颁发政策适用于整个证书授权机构 (CA) 池,并定义高级别限制,例如允许的密钥类型、允许的证书有效期以及主题和正文备用名称 (SAN) 限制。

  • 精细的政策,例如证书模板:借助证书模板,您可以定义可以颁发哪些类型的证书,以及谁有权颁发这些证书,从而防止滥用并维护安全性。证书模板可让您针对不同用途定义不同类型的证书,从而实现更精细的控制。例如,您可以为特定使用情形创建证书模板,例如用于 Web 服务器的 TLS 证书和用于开发者的代码签名证书。您还可以为不同的部门或团队创建模板,以便每个团队都能申请具有所需特定权限的证书。

除了证书颁发政策和证书模板之外,您还可以强制执行特定的政策控制措施,例如名称限制条件,以防止 CA 为未经授权的网域或实体颁发证书。

证书颁发政策简介

证书颁发政策用于定义对 CA 池内所有证书颁发的控制。CA 管理员可以将证书颁发政策附加到 CA 池,以定义对 CA 池中的 CA 可以颁发的证书类型的限制。证书颁发政策可帮助您执行以下操作:

  • 添加对可请求的允许的正文和 SAN 的限制。这会验证证书中可以识别的身份(个人或实体),例如仅允许贵公司域名的证书。
  • 定义对证书身份、证书生命周期、密钥类型、回溯期限和证书请求模式的限制。
  • 将特定 X.509 扩展附加到所有已颁发的证书中。

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

  1. 您的 CA 池旨在根据单个明确定义的配置文件颁发证书。 例如,您有一个专用 CA 池,该池仅为贵公司的内部网络服务器颁发证书。这些证书都需要相同的基本参数。

    • 所有已颁发的证书的正文中都包含 O=My organization
    • 所有 DNS 名称都以 .cymbalgroup.com 结尾。
    • 有效期为 1 年。

    证书颁发政策会强制执行这些规则,并确保从此 CA 池颁发的每张证书都符合此配置文件。

  2. 您希望为 X.509 扩展和适用于所有证书颁发配置文件的其他限制定义一个共同的基准。例如,您有不同类型的证书,例如员工电子邮件签名证书(有效期为 2 年)和面向公众的网站的 TLS 证书(有效期为 1 年)。您可以定义适用于所有证书的基准签发政策:

    • 所有证书都必须在主题中包含公司名称。
    • 所有证书都必须使用一组特定的 X.509 扩展程序,以符合组织的安全标准。

    然后,您可以使用证书模板在基准之上为每种证书类型定义具体变体。

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

证书模板简介

证书模板表示组织内相对静态且定义明确的证书颁发架构。通过使用证书模板,从各种 CA 池颁发的证书具有相同的格式和属性,无论颁发 CA 是什么。CertificateTemplate 资源包括以下内容:

  • 一种通用表达式语言 (CEL) 表达式,用于针对使用相应模板的所有证书请求中请求的主题和 SAN 进行评估。如需详细了解如何使用 CEL,请参阅使用 CEL
  • 一个许可名单,用于指定是否可以将主题或正文备用名称从最终用户请求复制到已签发的证书。
  • 一个可选的许可名单,用于指定哪些 X.509 扩展(如果有)可以从最终用户请求复制到颁发的证书。
  • 一组可选的 X.509 扩展值,这些值会添加到使用相应模板的所有已颁发证书中。

证书模板可以成为完整的垂直证书颁发框架。如需了解详情,请参阅完整的 CertificateTemplate 消息定义。

如果您有明确定义的证书颁发方案,则可以使用证书模板。您可以使用证书模板来确保从不同 CA 池颁发的证书保持一致。您还可以使用证书模板来限制不同个人可以颁发的证书类型。

您还可以结合使用证书模板和 Identity and Access Management (IAM) 有条件的角色绑定,来定义适用于特定服务账号所发证书请求的限制条件。例如,您可以创建一个仅允许 DNS 名称以 .altostrat.com 结尾的证书模板。然后,您可以添加有条件的角色绑定,以授予服务账号 my-service-account@my-project.iam.gserviceaccount.com 权限,使其在从特定证书授权机构池请求证书时只能使用该模板。这样一来,服务账号就只能颁发具有该特定 SAN 限制的证书。

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

CA 证书名称限制条件

CA Service 会按照 RFC 5280 文档的名称限制条件部分中的定义,强制执行 CA 证书中的名称限制条件。借助名称限制条件,您可以控制 CA 颁发的证书中允许或排除哪些名称。

名称限制条件是通过 X.509 证书中的名称限制条件扩展项实现的。此扩展程序可让您为各种名称形式(例如 DNS 名称、IP 地址、电子邮件地址和网址)指定允许和排除的命名空间。

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

  • 只有 myownpersonaldomain.com 及其子网域可用作 DNS 名称。
  • 禁止将 examplepetstore.com 及其子网域用作 DNS 名称。

名称限制条件是在 CA 自身的证书中定义的。这意味着,该 CA 颁发的任何证书都受这些限制条件的约束。当 CA 签发证书时,它会根据已定义的名称限制条件检查所请求的主题名称和任何主题备用名称 (SAN)。如果任何名称违反了限制,则证书签发会被拒绝。

您只能在创建 CA 时指定名称限制。

使用政策控制选项的好处

政策控制措施可帮助您实现以下目标:

  • 通过限制可签发的证书类型,并降低创建和滥用未经授权的证书的风险,来增强安全性。
  • 满足证书管理方面的监管要求和行业最佳实践。
  • 减少人工工作量和潜在错误。借助证书模板,您可以更轻松地以一致且高效的方式颁发证书。
  • 建立信任,因为明确定义的政策和严格的控制措施可增强对您所签发证书的信心。

强制执行政策控制措施

当有人请求证书时,CA Service 会在以下级别评估这些政策控制:

  1. Identity and Access Management (IAM) 权限:首先,该服务会检查请求者是否具有创建证书或使用指定证书模板所需的 IAM 权限。这样可以确保只有获得授权的用户才能获取证书。

  2. 证书发放政策:然后,该服务会根据 CA 池的发放政策验证证书请求。这可确保请求符合该 CA 颁发的证书的一般要求。

  3. 证书模板:如果使用模板,系统会根据模板的特定限制进一步验证请求。这样可确保证书适合其预期用途。

CA 池的证书颁发政策和证书模板中的 X.509 扩展程序会添加到证书中,并且某些值会根据这些相同的政策被舍弃。在对证书进行签名之前,系统会针对证书验证 CA 证书中的名称限制条件,以确保正文符合要求。

政策冲突

如果同时使用不同的政策控制机制,不同层级的政策可能会发生冲突。例如,证书模板可能允许 CA 池的颁发政策禁止的密钥类型(例如 ECDSA)。或者,证书模板和颁发政策可能会为同一 X.509 扩展指定不同的值。

如需了解如何在 CA Service 中管理政策冲突,请参阅关于政策冲突

后续步骤