创建 CA 池
本页介绍了如何创建证书授权机构 (CA) 池。
CA 池是包含多个 CA 的集合,它具有通用证书颁发政策和 Identity and Access Management (IAM) 政策。CA 池可简化 CA 轮替管理,并让您能够实现更高的每秒有效查询次数 (QPS) 总和。
您必须先创建 CA 池,然后才能使用 Certificate Authority Service 创建 CA。如需了解详情,请参阅 CA 池概览。
准备工作
确保您具有 CA Service Operation Manager (roles/privateca.caManager
) IAM 角色。如需了解如何向正文授予 IAM 角色,请参阅授予单个角色。
确定 CA 池的设置
本部分介绍了 CA 池的设置,并提供了有关确定设置的建议。
永久性 CA 池设置
CA 池创建后,以下 CA 池设置将无法更改。
- 位置
指定 CA 池的位置。CA 池存储在单个 Google Cloud 位置中。我们建议您在打算使用 CA 的位置或附近创建 CA 池。
如需查看受支持位置的完整列表,请参阅位置。
- 层级
选择您是想使用 DevOps 层还是企业层创建 CA 池。此选项会影响 CA 服务是否保留已创建的证书、是否可以在日后撤消已创建的证书,以及您可以从 CA 池中的 CA 创建证书的最大速率。如需了解详情,请参阅选择操作层级。
可选的 CA 池设置
- 证书颁发政策
CA 池可以具有证书颁发政策。此颁发政策会限制 CA 池中的 CA 可以颁发的证书。创建 CA 池后,您可以更新 CA 池的颁发政策。如需了解详情,请参阅模板和发卡政策概览。
如需详细了解如何配置证书颁发政策,请参阅向 CA 池添加证书颁发政策。
- 发布选项
您可以配置 CA 池,以发布其每个 CA 的 CA 证书。颁发证书时,此 CA 证书的网址会作为授权信息访问 (AIA) 扩展包含在证书中。
您可以允许企业级 CA 池中的 CA 将证书吊销列表 (CRL) 发布到关联的 Cloud Storage 存储桶。在颁发证书时,此 CRL 的网址会作为 CRL 分发点 (CDP) 扩展包含在证书中。您无法在证书中找到不含 CDP 扩展的 CRL。如需了解详情,请参阅撤消证书。
您还可以选择已发布 CA 证书和 CRL 的编码格式。支持的编码格式包括隐私增强邮件 (PEM) 和唯一编码规则 (DER)。如果未指定编码格式,则系统会使用 PEM。
如果您使用 Google Cloud CLI 或 Google Cloud 控制台创建 CA 池,CA Service 会默认启用这些发布选项。如需了解详情,请参阅为 CA 池中的 CA 停用 CA 证书和 CRL 发布。
创建 CA 池
如需创建 CA 池,请按照以下说明操作:
控制台
为 CA 池选择名称
前往 Google Cloud 控制台中的 Certificate Authority Service 页面。
点击 CA 池管理器。
点击
Create pool(创建池)。为 CA 池添加一个在该区域内唯一的名称。
从区域字段中的下拉菜单中选择一个区域。如需了解详情,请参阅选择最佳位置。
选择 Enterprise 或 DevOps 层级。如需了解详情,请参阅选择操作层级。
点击下一步。
配置允许的密钥算法和大小
借助 CA Service,您可以为 CA 池中 CA 的后备 Cloud KMS 密钥选择签名算法。默认情况下,所有密钥算法都受允许。
如需限制 CA 池颁发的证书中允许使用的密钥,请执行以下操作。这是一个可选步骤。
- 点击该切换开关。
- 点击添加一项。
在类型列表中,选择键类型。
如果您想使用 RSA 密钥,请执行以下操作:
- 可选:添加模数下限(以位为单位)。
- 可选:添加模数上限(以位为单位)。
- 点击完成。
如果您想使用椭圆曲线密钥,请执行以下操作:
- 可选:在椭圆曲线类型列表中,选择椭圆曲线类型。
- 点击完成。
如需添加其他允许的密钥,请点击添加一项,然后重复第 2 步。
点击下一步。
配置证书请求方法
如需限制证书请求者可以使用哪些方法从 CA 池请求证书,请执行以下操作:
- 可选:如需限制基于 CSR 的证书请求,请点击切换开关。
- 可选:如需限制基于配置的证书请求,请点击切换开关。
配置发布选项
如需配置发布选项,请执行以下操作:
- 可选:如要禁止将 CA 池中 CA 的 CA 证书发布到 Cloud Storage 存储桶,请点击切换开关。
- 可选:如需禁止将 CA 池中 CA 的 CRL 发布到 Cloud Storage 存储桶,请点击切换开关。
点击菜单,选择已发布的 CA 证书和 CRL 的编码格式。
点击下一步。
如需在 CA 池颁发的证书中配置基准值,请执行以下操作:
- 点击切换开关。
- 点击配置基准值。
您可以使用此设置来配置证书中包含的密钥的使用方式。密钥用途选项包括密钥加密、数据加密、证书签名、CRL 签名等。
如需了解详情,请参阅密钥使用情况。
如需定义基本密钥用法,请执行以下操作:
- 可选:如果您想为证书指定基本密钥用途,请在随即显示的窗口中点击相应切换开关。
- 选中您希望使用密钥的方式对应的复选框。
- 点击下一步。
您可以使用此设置来选择证书中包含的密钥可用于的更精细的场景。选项包括服务器身份验证、客户端身份验证、代码签名、电子邮件保护等。
扩展密钥用法使用对象标识符 (OID) 进行定义。如果您未配置扩展密钥用途,则允许所有密钥用途场景。
如需了解详情,请参阅扩展密钥用途。
如需定义扩展密钥用法,请执行以下操作:
- 可选:如需为 CA 池颁发的证书指定扩展密钥用途,请点击切换开关。
- 选中扩展密钥用法场景对应的复选框。
- 点击下一步。
证书中的证书政策扩展用于表示颁发 CA 池遵循的政策。此扩展可以包含有关在颁发证书之前如何验证身份、如何撤消证书以及如何确保 CA 池完整性的信息。此扩展程序可帮助您验证 CA 池颁发的证书,并查看证书的使用方式。
如需了解详情,请参阅证书政策。
如需指定用于定义证书使用情况的政策,请执行以下操作:
- 可选:在政策标识符字段中添加政策标识符。
- 点击下一步。
证书中的 AIA 扩展提供以下信息:
- OCSP 服务器的地址,您可以通过该地址查看证书的撤消状态。
- 证书颁发者的访问方法。
如需了解详情,请参阅对授权信息的访问。
如需添加证书中 AIA 扩展字段中显示的 OCSP 服务器,请执行以下操作。以下步骤是可选的。
- 可选:点击添加项。
- 在 Server 网址(服务器网址)字段中,添加 OCSP 服务器的网址。
- 点击完成。
- 点击下一步。
如需配置要在 CA 池颁发的证书中添加的其他自定义扩展,请执行以下操作。以下步骤是可选的。
- 点击添加项。
- 在对象标识符字段中,添加格式为英文句点分隔的数字的有效对象标识符。
- 在 Value 字段中,添加标识符的 base64 编码值。
- 如果该扩展程序至关重要,请选择扩展程序至关重要。
如需保存所有基准值配置,请点击完成。
配置扩展程序限制如需禁止将证书请求中的所有扩展添加到已颁发的证书中,请点击该切换开关。
点击该切换开关后,您会看到已知证书扩展字段,您可以使用该字段选择证书扩展。如需选择证书扩展程序,请执行以下操作:
- 可选:点击已知证书扩展字段,然后从菜单中清除不需要的扩展。
- 可选:在自定义扩展字段中,添加您希望添加到 CA 池颁发的证书中的扩展的对象标识符。
如需对 CA 池颁发的证书中的主题和 SAN 配置约束条件,请执行以下操作:
- 可选:如要禁止传递证书请求中的主题,请点击切换开关。
- 可选:如需禁止传递证书请求中的主题备用名称,请点击切换开关。
- 可选:添加通用表达式语言 (CEL) 表达式,对证书主题施加限制。如需了解详情,请参阅 使用 CEL。
- 点击下一步。
如需了解如何在证书颁发政策中配置其他参数,请参阅 IssuancePolicy。
如需创建 CA 池,请点击完成。
gcloud
运行以下命令:
gcloud privateca pools create POOL_NAME
将 POOL_NAME 替换为 CA 池的名称。
如果您未指定 CA 池所需的层级,系统会默认选择 Enterprise
层级。如果您想为 CA 池指定层级,请运行以下 gcloud
命令:
gcloud privateca pools create POOL_NAME --tier=TIER_NAME
替换以下内容:
- POOL_NAME:CA 池的名称。
- TIER_NAME:
devops
或enterprise
。如需了解详情,请参阅选择操作层级。
如果您未为 CA 池指定发布编码格式,系统会默认选择 PEM
发布编码格式。如果您想为 CA 池指定发布编码格式,请运行以下 gcloud
命令:
gcloud privateca pools create POOL_NAME --publishing-encoding-format=PUBLISHING_ENCODING_FORMAT
替换以下内容:
- POOL_NAME:CA 池的名称。
- PUBLISHING_ENCODING_FORMAT:
PEM
或DER
。
如需详细了解 gcloud privateca pools create
命令,请参阅 gcloud privateca pools create。
如需了解如何对 CA 池可以颁发的证书类型施加限制,请参阅向 CA 池添加证书颁发政策。
Terraform
Go
如需向 CA Service 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需向 CA Service 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需向 CA Service 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
REST API
创建 CA 池。
HTTP 方法和网址:
POST https://privateca.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/caPools\?ca_pool_id=POOL_ID
请求 JSON 正文:
{ "tier": "ENTERPRISE" }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID", "metadata": {...}, "done": false }
轮询该操作,直到它完成为止。
当长时间运行的操作的
done
属性设为true
时,表示操作已完成。HTTP 方法和网址:
GET https://privateca.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID", "metadata": {...}, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.security.privateca.v1.CaPool", "name": "...", "tier": "ENTERPRISE" } }
为 CA 池添加或更新标签
标签是一种键值对,可帮助您整理 CA 服务资源。您可以根据资源的标签对资源进行过滤。
如需为 CA 池添加或更新标签,请执行以下操作:
控制台
如需添加标签,请执行以下操作:
前往 Certificate Authority Service 页面。
在 CA 池管理器标签页中,选择 CA 池。
点击标签。
点击
添加标签。添加键值对。
点击保存。
如需修改现有标签,请执行以下操作:
前往 Certificate Authority Service 页面。
在 CA 池管理器标签页中,选择 CA 池。
点击标签。
修改标签的值。
点击保存。
gcloud
运行以下命令:
gcloud privateca pools update POOL_ID --update-labels foo=bar
将 POOL_ID 替换为 CA 池的名称。
后续步骤
- 了解如何创建根 CA。
- 了解如何创建从属 CA。
- 了解如何使用证书颁发政策。
- 了解如何使用 CA 池提高证书创建吞吐量。
- 了解如何更新和删除 CA 池。