创建 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 池。
- 如需查看受支持位置的完整列表,请参阅位置。
- 层级
- 选择您要创建的 CA 池是 DevOps 级还是企业级。此选择会影响 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 存储桶,请点击相应切换开关。
- 可选:如需禁止将 CRL 发布到 Cloud Storage 存储桶,请点击相应切换开关。
点击菜单以选择已发布的 CA 证书和 CRL 的编码格式。
点击下一步。
此设置是指数字证书中的 Key Usage
字段。它指定了证书的私钥可用于哪些用途,例如密钥加密、数据加密、证书签名和 CRL 签名。如需了解详情,请参阅密钥使用情况。
- 如需选择基本密钥用途,请点击指定由此 CA 池颁发的证书的基本密钥用途切换开关,然后从列出的选项中进行选择。
- 点击下一步。
此设置是指数字证书中的 Extended Key Usage (EKU)
字段。它对密钥的使用方式提供了更具体、更精细的限制,例如用于服务器身份验证、客户端身份验证、代码签名和电子邮件保护。如需了解详情,请参阅扩展密钥使用情况。
扩展密钥用法使用对象标识符 (OID) 定义。如果您未配置扩展密钥用途,则允许所有密钥用途场景。
- 如需选择扩展密钥用途,请点击将扩展密钥用途写入由此 CA 池颁发的证书切换开关,然后从列出的选项中进行选择。
- 点击下一步。
证书中的证书政策扩展表示颁发 CA 池遵循的政策。此扩展程序可以包含以下方面的信息:在颁发证书之前如何验证身份、如何撤消证书,以及如何确保 CA 池的完整性。此扩展程序可帮助您验证 CA 池颁发的证书,并了解证书的使用方式。
如需了解详情,请参阅证书政策。
如需指定定义证书使用情况的政策,请执行以下操作:
- 在政策标识符字段中添加政策标识符。
- 点击下一步。
证书中的 AIA 扩展提供以下信息:
- 可用于检查证书的吊销状态的 OCSP 服务器的地址。
- 证书颁发者的访问方法。
如需了解详情,请参阅授权信息访问。
如需添加证书的 AIA 扩展字段中显示的 OCSP 服务器,请执行以下操作:
- 点击添加项目。
- 在 Server 网址(服务器网址)字段中,添加 OCSP 服务器的网址。
- 点击完成。
- 点击下一步。
证书模板中的 CA 选项字段用于定义如何在证书授权机构 (CA) 层次结构中使用生成的证书。CA 选项用于确定证书是否可用于签署其他证书,如果可以,则确定其颁发的证书的限制。
根据需要选择下列其中一项:
添加配置以描述 CA X.509 扩展:指定证书模板中用于控制 X.509 扩展的设置。
将已颁发的证书限制为仅用于 CA:只有在您选中上一步中提到的复选框后,此选项才会显示。此布尔值用于指示证书是否为 CA 证书。如果设置为
true
,则该证书可用于为其他证书签名。如果值为false
,则表示相应证书是最终实体证书,无法为其他证书签名。 如果您点击此切换开关,系统会进一步提示您为 CA 证书中的扩展定义名称限制条件。添加配置以描述路径长度限制 X.509 扩展:指定用于控制证书链长度的设置,该长度从特定证书开始计算。如果将颁发者路径长度上限设置为
0
,则 CA 只能颁发最终实体证书。如果设置为1
,则此 CA 证书下的链只能包含一个从属 CA。如果未声明值,则此 CA 下方链中的下级 CA 数量不受限制。- 点击下一步。
如需配置其他自定义扩展以包含在 CA 池颁发的证书中,请执行以下操作:
- 点击添加项目。
- 在对象标识符字段中,添加一个有效的对象标识符,该标识符的格式为以英文句点分隔的数字。
- 在值字段中,添加标识符的 base64 编码值。
- 如果扩展服务至关重要,请选择扩展服务至关重要。
如需保存所有基准值配置,请点击完成。
如需创建 CA 池,请点击完成。
gcloud
运行以下命令:
gcloud privateca pools create POOL_NAME --location=LOCATION
替换以下内容:
- POOL_NAME:CA 池的名称。
- LOCATION:您要在其中创建 CA 池的位置。如需查看位置的完整列表,请参阅位置。
如果您未指定 CA 池所需的层级,系统会默认选择 Enterprise
层级。如果您想为 CA 池指定层级,请运行以下 gcloud
命令:
gcloud privateca pools create POOL_NAME --location=LOCATION --tier=TIER_NAME
替换以下内容:
- POOL_NAME:CA 池的名称。
- LOCATION:您要在其中创建 CA 池的位置。如需查看位置的完整列表,请参阅位置。
- TIER_NAME:
devops
或enterprise
。如需了解详情,请参阅选择运营层级。
如果您未指定 CA 池的发布编码格式,系统会默认选择 PEM
发布编码格式。如果您想为 CA 池指定发布编码格式,请运行以下 gcloud
命令:
gcloud privateca pools create POOL_NAME --location=LOCATION --publishing-encoding-format=PUBLISHING_ENCODING_FORMAT
替换以下内容:
- POOL_NAME:CA 池的名称。
- LOCATION:您要在其中创建 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 --location=LOCATION --update-labels foo=bar
替换以下内容:
- POOL_ID:CA 池的名称。
- LOCATION:CA 池的位置。如需查看位置的完整列表,请参阅位置。
后续步骤
- 了解如何创建根 CA。
- 了解如何创建下级 CA。
- 了解如何使用证书颁发政策。
- 了解如何使用 CA 池提高证书创建吞吐量。
- 了解如何更新和删除 CA 池。