管理资源

通过 Certificate Authority Service 创建的证书授权机构 (CA) 依赖于两种次级资源类型:

  • Cloud Key Management Service 密钥版本,用于签署证书和 由 CA 颁发的证书吊销列表 (CRL)。如需详细了解密钥版本,请参阅密钥版本
  • Cloud Storage 存储桶,用于托管 CA 证书和 CA 发布的任何 CRL(如果启用了这些设置)。如需详细了解 Cloud Storage 存储分区,请参阅存储分区

每个 CA 必须同时存在这两个资源,并且这两个资源在 会创建 CA。

管理模式

CA Service 支持两种生命周期管理模型 资源:

  • 由 Google 管理
  • 由客户管理

Cloud KMS 密钥和 Cloud Storage 存储桶不需要 使用相同的管理模式例如,Cloud KMS 密钥可以是 由 Google 管理,Cloud Storage 存储桶可以由客户管理, 了解情况。

由 Google 管理

CA Service 会自动创建和配置资源 在创建 CA 时遵循此模型,并在删除 CA 时删除资源。 您无需为这些资源单独付费。

默认情况下,新的 CA 使用 Google 管理的 Cloud KMS 密钥和 Cloud Storage 存储桶。您可以为密钥选择特定的密钥算法, 创建证书授权机构时,由 Google 管理的 Cloud KMS 密钥。由 Google 管理的 Cloud KMS 密钥无法跨 CA 重复使用。

如需了解如何创建根 CA,请参阅 创建根 CA。 如需了解如何创建从属 CA,请参阅创建从属 CA。 如需有关选择密钥算法的指导,请参阅 选择密钥算法

由客户管理

您只能为 Enterprise 层级。您必须先创建和配置客户管理的资源,然后才能创建 CA。此外, 您必须在 CA 删除之后的适当时间 已销毁。系统会直接向用户收取这些资源的费用。

CA Service 将项目视为客户管理的 Cloud KMS 密钥的安全边界。举例来说,假设用户 Alice 使用客户管理的 Cloud KMS 密钥在项目 test 中创建 CA。然后,另一位用户 Bob 可以使用同一 Cloud KMS 密钥在同一项目中创建另一个 CA。虽然 Alice 需要拥有该密钥的管理员访问权限才能创建第一个 CA,但 Bob 不需要拥有该密钥的任何访问权限,因为 Alice 已经在项目 test 中允许 CA 服务使用该密钥。

创建客户管理的资源的优势

此模型的一个优势是,调用方可以直接控制 资源。调用方可以直接更新访问权限管理等属性,以满足其组织要求。

使用客户管理的资源创建 CA 要求调用方 以授予适当的管理员权限, 以及对 CA Service 的访问权限。如需了解详情,请参阅 CA 服务代理

Cloud KMS 密钥的位置

您必须在 CA 服务资源所在的位置创建客户管理的 Cloud KMS 密钥。如需查看 CA Service 位置的完整列表,请参阅位置。如需查看可创建 Cloud KMS 资源的位置列表,请参阅 Cloud KMS 位置

Cloud Storage 存储分区的位置

您必须创建客户管理的 Cloud Storage 存储分区 位于与 CA Service 资源大致相同的位置。您 无法在您当前拥有的大洲以外创建 Cloud Storage 存储桶。 并创建了 CA 服务资源。

例如,如果您的 CA 位于 us-west1,您可以在美国的任何单区域(例如 us-west1us-east1)、双区域 NAM4 和多区域 US 中创建 Cloud Storage 存储桶。

Cloud Storage 位置列表 请参阅 Cloud Storage 位置

访问托管资源

拥有 Cloud Storage 上托管的 CA 证书的网址的任何人 默认情况下,存储桶或 CA 发布的任何 CRL 都可以访问这些资源。 要阻止公开访问您的 CA 证书和 CRL,请添加项目 (包含 CA 池)添加到 VPC Service Controls 边界

通过将包含 CA 池的项目添加到 VPC Service Controls 边界, 由 Google 管理的 Cloud Storage 存储桶加入边界。通过 VPC Service Controls 边界可确保 Cloud Storage 存储桶 可从已批准网络以外的地方访问。

网络边界内的客户端仍然可以访问 CRL 和 CA 证书数量。来自 未通过审核。

CA 证书和 CRL 的基于 HTTP 的网址

CA 证书和 CRL 适用于以下基于 HTTP 的网址: 原因:

  • 不应选择在 Cloud Storage 存储桶中发布的 CA 证书 完全被客户信任CA 证书是 证书链,以根 CA 的证书开头。每个 证书链中的 位于链中的较高位置,以保持证书的完整性。因此,使用 HTTPS 协议没有额外的好处。

  • 在验证证书时,某些客户端会拒绝基于 HTTPS 的网址。

为 CA 池中的 CA 启用 CA 证书和 CRL 发布

CA 服务允许 CA 证书和 CRL 发布 创建新的 CA 池时,默认使用 Cloud Storage 存储分区。如果您在创建 CA 池时停用了 CA 证书和 CRL 发布功能,现在想启用它们,可以按照本部分中的说明操作。

为 CA 中的所有 CA 启用 CA 证书发布和 CRL 发布 执行以下操作:

控制台

  1. 转到 Google Cloud 控制台中的 Certificate Authority Service 页面。

    转到 Certificate Authority Service

  2. CA 池管理器标签页下,点击所需的 CA 池的名称 进行修改。

  3. CA 池页面上,点击 修改

    使用 Cloud 控制台修改现有 CA 池。

  4. 配置允许的密钥算法和大小下,点击下一步

  5. 配置接受的证书请求方法下,点击下一步

  6. 配置发布选项下,点击发布 CA 的切换开关 证书发送到 Cloud Storage 存储桶,以用于此池中的 CA

  7. 点击将 CRL 发布到此池中的 CA 的 Cloud Storage 存储桶切换开关。

gcloud

运行以下命令:

gcloud privateca pools update POOL_ID --publish-crl --publish-ca-cert

POOL_ID 替换为 CA 池的名称。

如果启用 --publish-ca-cert,则 CA Service 会写入每个 CA 的 CA 到 Cloud Storage 存储桶(其路径在 CA 中指定)的证书 资源。所有已颁发证书中的 AIA 扩展都指向 包含 CA 证书的 Cloud Storage 对象网址。CRL 所有已颁发证书中的分发点 (CDP) 扩展均指向 包含 CRL 的 Cloud Storage 对象网址。

如需详细了解如何为撤消证书启用 CRL 发布,请参阅 撤消证书

如需详细了解 gcloud privateca pools update 命令,请参阅 gcloud privateca pool update

为 CA 池中的 CA 停用 CA 证书和 CRL 发布

要停用所有 CA 的 CA 证书发布或 CRL 发布, CA 池,请执行以下操作:

控制台

  1. 转到 Google Cloud 控制台中的 Certificate Authority Service 页面。

    前往 Certificate Authority Service

  2. CA 池管理器标签页下,点击所需的 CA 池的名称 进行修改。

  3. CA 池页面上,点击 修改

  4. 配置允许的密钥算法和大小下,点击下一步

  5. 配置接受的证书请求方法下,点击下一步

  6. 配置发布选项下,点击发布 CA 的切换开关 证书发送到 Cloud Storage 存储桶,以用于此池中的 CA

  7. 点击将 CRL 发布到此池中的 CA 的 Cloud Storage 存储桶切换开关。

gcloud

运行以下命令:

gcloud privateca pools update POOL_ID --no-publish-crl --no-publish-ca-cert

POOL_ID 替换为 CA 池的名称。

停用分发点不会删除 Cloud Storage 存储桶或其权限,也不会移除已托管在该存储桶中的任何 CA 证书或 CRL。不过,这确实意味着 发布到 Cloud Storage 存储桶后 AIA 和 CDP 扩展。

更新已发布的 CA 证书和 CRL 的编码格式

如需更新已发布的 CA 证书和 CRL 的编码格式,请执行以下操作:

控制台

  1. 前往 Google Cloud 控制台中的 Certificate Authority Service 页面。

    前往 Certificate Authority Service

  2. CA 池管理器标签页下,点击所需的 CA 池的名称 进行修改。

  3. CA 池页面上,点击 修改

  4. 配置允许的密钥算法和大小下,点击下一步

  5. 配置接受的证书请求方法下,点击下一步

  6. 配置发布选项下,点击发布编码格式对应的下拉菜单。

  7. 选择发布编码格式。

gcloud

运行以下命令:

gcloud privateca pools update POOL_ID --publishing-encoding-format=PUBLISHING_ENCODING_FORMAT

替换以下内容:

  • POOL_ID:您的 CA 池的名称。
  • PUBLISHING_ENCODING_FORMATPEMDER

如需详细了解 gcloud privateca pools update 命令,请参阅 gcloud privateca pools update

后续步骤