删除证书授权机构
利用 Certificate Authority Service,您可以删除现有的证书授权机构 (CA)。从启动删除流程开始的 30 天宽限期后,CA 将被永久删除。宽限期过后,CA Service 会永久删除 CA 以及所有嵌套的工件,例如证书和证书吊销列表 (CRL)。
已删除的 CA 使用的任何由客户管理的 Google Cloud 资源(例如 Cloud Storage 存储分区或 Cloud Key Management Service 密钥)不会被删除。如需详细了解 Google 管理和客户管理的资源,请参阅管理资源。
在宽限期内,您无需为已删除的 CA 支付费用。但是,如果您恢复 CA,则需要根据 CA 处于 DELETED
状态的时间,按该 CA 的结算层级支付费用。
准备工作
确保您拥有 CA Service Operation Manager (
roles/privateca.caManager
) 或 CA Service Admin (roles/privateca.admin
) Identity and Access Management (IAM) 角色。如需详细了解 CA Service 的预定义 IAM 角色,请参阅使用 IAM 进行访问权限控制。如需了解如何授予 IAM 角色,请参阅授予单个角色。
确保 CA 符合以下条件:
- CA 必须处于
AWAITING_USER_ACTIVATION
、DISABLED
或STAGED
状态。如需了解详情,请参阅证书授权机构状态。
- CA 不得包含有效证书。我们建议先撤消该 CA 颁发的证书,然后再永久删除该 CA。永久删除 CA 后,便无法撤消有效证书。
- CA 必须处于
删除 CA
如需启动 CA 删除流程,请执行以下操作:
控制台
- 转到 Google Cloud 控制台中的 Certificate Authority Service 页面。
- 点击 CA 管理员标签页。
- 在 CA 列表中,选择要删除的 CA。
- 点击 停用。
- 在随即打开的对话框中,点击确认。
- 点击 删除。
- 在随即打开的对话框中,点击确认。
gcloud
检查 CA 状态,确保其已停用。您只能删除处于
DISABLED
状态的 CA。gcloud privateca roots describe CA_ID --pool=POOL_ID \ --format="value(state)"
替换以下内容:
- CA_ID:CA 的唯一标识符。
- POOL_ID:包含 CA 的 CA 池的名称。
如需详细了解
gcloud privateca roots describe
命令,请参阅 gcloud privateca roots describe。如果未停用 CA,请运行以下命令停用 CA。
gcloud privateca roots disable CA_ID --pool=POOL_ID
如需详细了解
gcloud privateca roots disable
命令,请参阅 gcloud privateca rootsdisable。删除 CA。
gcloud privateca roots delete CA_ID --pool=POOL_ID
通过在
gcloud
命令中添加--ignore-active-certificates
标志,即使 CA 具有活跃证书,您也可以删除该 CA。如需详细了解
gcloud privateca roots delete
命令,请参阅 gcloud privateca roots delete。出现提示时,请确认您要删除此 CA。
确认后,系统将安排删除该 CA,并开始 30 天的宽限期。该命令会输出删除 CA 的预计日期和时间。
Deleted Root CA [projects/PROJECT_ID/locations/us-west1/caPools/POOL_ID/certificateAuthorities/CA_ID] can be undeleted until 2020-08-14T19:28:39Z.
Go
如需向 CA Service 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需向 CA Service 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需向 CA Service 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
查看已删除 CA 的失效日期
如需查看某个 CA 何时会被永久删除,请执行以下操作:
控制台
- 点击 CA 池管理员标签页。
- 点击包含您删除的 CA 的 CA 池的名称。
您可以在 CA 池页面的表格中查看 CA 的到期日期。
gcloud
如需查看 CA 的预期删除时间,请运行以下命令:
gcloud privateca roots describe CA_ID \
--pool=POOL_ID \
--format="value(expireTime.date())"
替换以下内容:
- CA_ID:CA 的名称。
- POOL_ID:包含 CA 的 CA 池的名称。
当 CA Service 删除 CA 时,该命令会返回预期的日期和时间。
2020-08-14T19:28:39
如需验证 CA 是否已永久删除,请运行以下命令:
gcloud privateca roots describe CA_ID --pool=POOL_ID
如果已成功删除 CA,该命令将返回以下错误。
ERROR: (gcloud.privateca.roots.describe) NOT_FOUND: Resource 'projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificateAuthorities/CA_ID' was not found