使用 Google Cloud CLI 签发证书
本页面介绍了如何创建证书授权机构 (CA) 池和 使用 Google Cloud CLI 颁发证书。
借助 CA Service,您可以部署和管理私有 CA, 基础架构
准备工作
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Enable the Certificate Authority Service API:
gcloud services enable privateca.googleapis.com
Make sure that billing is enabled for your Google Cloud project.
配置一个默认位置,以便在本快速入门中的
gcloud
命令中使用。gcloud config set privateca/location LOCATION
CA 服务资源(例如 CA 池和 CA)位于单个 Google Cloud 位置,您在创建这些资源后便无法更改该位置。
创建 CA 池
证书授权机构 (CA) 池是包含多个 CA 的集合。CA 池能够轮替信任链,而不中断或停止工作负载。
如需在企业版层级创建 CA 池,请运行以下命令:
gcloud privateca pools create POOL_ID --tier "enterprise"
将 POOL_ID 替换为 CA 池的名称。
所有 CA 服务资源的名称都必须仅包含 允许使用的字符,即字母、数字、连字符和下划线。 名称的最大允许长度为 63 个字符。
创建根 CA
CA 池在创建时为空。如需从 CA 池请求证书,您必须 请在其中添加 CA
如需创建根 CA 并将其添加到您创建的 CA 池中,请运行以下命令 命令:
gcloud privateca roots create CA_ID --pool POOL_ID --subject "CN=Example Prod Root CA, O=Google"
替换以下内容:
- CA_ID:根 CA 的名称。
- POOL_ID:CA 池的名称。
CA Service 在创建根 CA 时会返回以下命令:
Created Certificate Authority [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificateAuthorities/CA_ID]
在 gcloud CLI 提示时,通过输入 y
来启用根 CA。
现在,您已经拥有包含根 CA 的 CA 池,接下来可以继续创建证书了。
创建证书
如需使用新创建的 CA 创建证书,请执行以下操作:
使用
pip
命令安装 Pyca 加密库。pip install --user "cryptography>=2.2.0"
CA 服务使用 Pyca 加密库在您的本地计算机上生成并存储新的非对称密钥对。此键永远不会 发送到 CA 服务。
如需允许 Google Cloud SDK 使用 Pyca 加密库,您必须启用网站软件包。
macOS 或 Linux
export CLOUDSDK_PYTHON_SITEPACKAGES=1
Windows
set CLOUDSDK_PYTHON_SITEPACKAGES=1
创建证书。
gcloud privateca certificates create \ --issuer-pool POOL_ID \ --subject "CN=Example Prod,O=Google" \ --generate-key \ --key-output-file=./key \ --cert-output-file=./cert.pem
将 POOL_ID 替换为证书授权机构的资源 ID 您创建的池
CA Service 会返回以下响应:
Created Certificate [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificates/CERTIFICATE_ID]
清理
通过删除 CA 池、CA 以及为此创建的项目进行清理 快速入门。
撤消证书。
- CERT_NAME:您要撤消的证书的名称。
- POOL_ID:颁发证书的 CA 池的名称。
如需撤消证书,请运行以下命令:
gcloud privateca certificates revoke --certificate CERT_NAME --issuer-pool POOL_ID
请替换以下内容:
删除 CA。
只有在撤消该 CA 颁发的所有证书后,您才能删除该 CA。
停用 CA。
gcloud privateca roots disable CA_ID --pool=POOL_ID
替换以下内容:
- CA_ID:CA 的资源 ID。
- POOL_ID:CA 池的资源 ID。
删除 CA。
gcloud privateca roots delete CA_ID --pool=POOL_ID
CA 状态会更改为
Deleted
。CA 服务会在您发起删除操作 30 天后永久删除 CA。删除 CA 池。
只有在 CA 池中的 CA 被永久删除后,您才能删除该 CA 池 已删除。
gcloud privateca pools delete POOL_ID
删除项目。
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
后续步骤
- 详细了解 CA 池。
- 详细了解如何创建 CA 池。
- 详细了解如何创建 CA。
- 详细了解如何申请证书。
- 了解如何控制 CA 池可以颁发的证书类型。