配置发布和存储

Certificate Authority Service (CA Service) 使用 Cloud Storage 存储分区为您的公钥基础架构 (PKI) 发布 CA 证书和证书吊销列表 (CRL)。

本文档介绍了如何配置 CA 服务使用的 Cloud Storage 存储分区,以便为您的 PKI 发布 CA 证书和 CRL。您可以使用 Google 管理的存储桶或客户管理的存储桶,以便更直接地进行控制。如需详细了解 Cloud Storage 存储分区,请参阅 Cloud Storage 存储分区简介。本文档还介绍了如何管理发布设置,例如启用或停用发布以及选择编码格式。

使用 Google 管理的存储桶

CA Service 会自动管理 Cloud Storage 存储分区的生命周期。您无需为这些资源单独付费。

默认情况下,当您创建 CA 池时,CA Service 会创建并管理具有以下特征的 Cloud Storage 存储桶:

  • 位置:存储桶与池位于同一项目和位置。
  • 集中式存储:存储桶用于存储 CA 池中所有 CA 的 CA 证书和 CRL。
  • 可公开读取:使用 Authority Information Access (AIA) 和 CRL Distribution Point (CDP) 扩展程序的客户端可以自动访问对象。

Google 管理的存储桶的优势

Google 管理的存储桶可简化管理。创建 CA 池时,CA Service 会自动创建并管理用于发布 CA 证书和 CRL 的存储桶。您无需配置任何其他 Cloud Storage 存储分区。

VPC Service Controls 注意事项

VPC Service Controls 边界会将对 Google 管理的 Cloud Storage 存储分区的访问权限限制为该边界内的客户端。无法从边界外部访问 CA 证书和 CRL 的 AIA 和 CDP 网址。这种无法访问的情况可能会导致外围之外的客户端出现证书验证失败。

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

使用客户管理的存储桶

客户管理的资源仅适用于企业层级中的 CA。您必须先创建并配置这些资源,然后才能创建 CA,并在删除 CA 时删除这些资源。您需要直接为这些资源付费。

您可以指定项目中的现有 Cloud Storage 存储分区,用于发布 CA 池的 CA 证书和 CRL。这样一来,您就可以直接控制存储桶的配置,包括其位置、存储类别、生命周期政策和访问权限控制。

客户管理的存储桶的优势

使用客户管理的存储桶可让您直接控制存储桶。您可以更新属性(例如访问权限管理),以满足组织的要求。

如需使用客户管理的存储桶创建证书授权机构 (CA),您必须拥有该存储桶的管理员权限,才能向 CA Service 授予适当的访问权限。如需了解详情,请参阅 CA Service 服务代理

Cloud Storage 存储分区的位置

在 CA Service 资源所在的同一位置创建客户管理的 Cloud Storage 存储分区。

例如,如果您的 CA 位于 us-west1,则可以在任何美国单区域(例如 us-west1us-east1)、NAM4 双区域或 US 多区域中创建 Cloud Storage 存储分区。如需查看可用位置的列表,请参阅 Cloud Storage 位置

准备工作

  • 确保 Cloud Storage 存储桶存在。请参阅创建存储桶

  • 确保 CA 服务服务账号可以访问该存储桶。

所需的角色

如需确保服务账号具有写入和管理对象(尤其是 CA 证书和 CRL)以及启用监控所需的权限,请让您的管理员为服务账号授予客户管理的 Cloud Storage 存储桶的以下 IAM 角色:

  • 如需写入和管理 CA 证书和 CRL:请授予以下角色: Storage Object Admin (roles/storage.objectAdmin)
  • 如需允许为存储桶集成 Cloud Monitoring,请授予以下角色:Storage Legacy Bucket Reader (roles/storage.legacyBucketReader)

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您的管理员还可以通过自定义角色或其他预定义角色向服务账号授予所需的权限。

配置 CA 以使用相应存储桶

如需在创建证书授权机构时指定客户管理的 Cloud Storage 存储桶,请将 --bucket 标志与 gcloud privateca roots creategcloud privateca subordinates create 命令搭配使用。

如需详细了解如何创建 CA,请参阅以下内容:

管理对证书和 CRL 的访问权限

使用客户管理的存储桶时,您可以控制其访问权限。由 CA Service 发布的 CA 证书和 CRL 会继承存储桶的默认对象权限,除非您另行配置。如需提供对证书授权机构信息访问 (AIA) 和 CRL 分发点 (CDP) 网址的公开访问权限,请将已发布的对象设为可公开读取。

默认情况下,CA Service 在 AIA 和 CDP 扩展程序中使用 HTTP 网址来引用 CA 证书和 CRL。使用 HTTP 网址可实现出色的客户端兼容性。部分客户端不支持 AIA 或 CDP 扩展中的 HTTPS。 数字签名可确保 CA 证书和 CRL 的完整性和真实性。

如需了解详情,请参阅 Cloud Storage 文档中的访问权限控制概览设置对象权限

管理发布内容设置

默认情况下,当您创建 CA 池时,CA Service 会启用 CA 证书和 CRL 发布到 Cloud Storage 存储分区。您可以更新这些发布设置,以启用发布、停用发布或更改编码格式。

为 CA 池启用发布功能

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

控制台

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

    前往 Certificate Authority Service

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

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

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

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

  6. 配置发布选项下,点击将 CA 证书发布到此池中 CA 专用的 Cloud Storage 存储桶对应的切换开关。

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

gcloud

运行以下命令:

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

替换以下内容:

  • POOL_ID:CA 池的名称
  • LOCATION:CA 池的位置。如需查看可用位置的列表,请参阅 CA 服务位置

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

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

为 CA 池停用发布功能

如需为 CA 池中的所有 CA 停用 CA 证书和 CRL 发布,请执行以下操作:

控制台

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

    前往 Certificate Authority Service

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

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

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

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

  6. 配置发布选项下,点击将 CA 证书发布到此池中 CA 专用的 Cloud Storage 存储桶对应的切换开关。

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

gcloud

运行以下命令:

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

替换以下内容:

  • POOL_ID:CA 池的名称
  • LOCATION:CA 池的位置。如需查看可用位置的列表,请参阅 CA 服务位置

选择编码格式

如需更新已发布的 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 --location=LOCATION --publishing-encoding-format=PUBLISHING_ENCODING_FORMAT

替换以下内容:

  • POOL_ID:CA 池的名称

  • LOCATION:CA 池的位置。如需查看可用位置的列表,请参阅 CA 服务位置

  • PUBLISHING_ENCODING_FORMAT:编码格式可以是 PEMDER

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

后续步骤