删除证书授权机构
借助 Certificate Authority Service,您可以删除现有的证书授权机构 (CA)。CA 将在删除流程启动之日起 30 天的宽限期后永久删除。宽限期过后,CA 服务会永久删除该 CA 和所有嵌套的制品,例如证书和证书吊销列表 (CRL)。
被删除的 CA 正在使用的任何客户管理的 Google Cloud 资源(例如 Cloud Storage 存储分区或 Cloud Key Management Service 密钥)都不会被删除。如需详细了解 Google 管理的资源和客户管理的资源,请参阅管理资源。
在宽限期内,系统不会针对已删除的 CA 收取费用。不过,如果您恢复 CA,则需要按照 CA 的结算层级支付 CA 处于 DELETED
状态期间的费用。
准备工作
确保您拥有 CA Service Operation Manager (
roles/privateca.caManager
) 或 CA Service Admin (roles/privateca.admin
) Identity and Access Management (IAM) 角色。如需详细了解 CA 服务的预定义 IAM 角色,请参阅使用 IAM 进行访问权限控制。如需了解如何授予 IAM 角色,请参阅授予单个角色。
请确保 CA 满足以下条件:
- CA 必须处于
AWAITING_USER_ACTIVATION
、DISABLED
或STAGED
状态。如需了解详情,请参阅证书授权机构状态。
CA 不得包含有效证书。如果证书满足以下条件,则视为有效:
证书具有有效的“开始”和“结束”日期。
证书尚未被撤消。
使用证书的设备或系统信任颁发证书的证书授权机构 (CA)。
在删除 CA 之前,请确保已撤消该 CA 颁发的所有有效证书。您无法撤消已删除的 CA 中的证书。
- CA 必须处于
删除 CA
如需启动 CA 删除,请执行以下操作:
控制台
- 前往 Google Cloud 控制台中的证书授权机构页面。
- 在 CA 列表中,选择要删除的 CA。
- 点击 删除。系统会显示删除证书授权机构对话框。
-
可选:如果符合以下条件,请选择一个或两个复选框:
-
删除此 CA(即使存在有效证书)
此选项可让您删除具有有效证书的 CA。删除具有有效证书的 CA 可能会导致依赖这些证书的网站、应用或系统出现故障。建议您先撤消 CA 颁发的所有有效证书,然后再删除该 CA。
-
跳过 30 天的宽限期,立即删除此 CA
30 天的宽限期让您有时间撤消此 CA 颁发的所有证书,并验证没有系统依赖于此 CA。我们建议仅在非生产或测试环境中使用此选项,以防止可能出现的中断和数据丢失。
-
- 点击确认。
gcloud
检查 CA 状态,确保其已停用。您只能删除处于
DISABLED
状态的 CA。gcloud privateca roots describe CA_ID --pool=POOL_ID --location=LOCATION --format="value(state)"
替换以下内容:
- CA_ID:CA 的唯一标识符。
- POOL_ID:包含 CA 的 CA 池的名称。
- LOCATION:CA 池的位置。如需查看位置的完整列表,请参阅位置。
如需详细了解
gcloud privateca roots describe
命令,请参阅 gcloud privateca roots describe。如果 CA 未停用,请运行以下命令来停用 CA。
gcloud privateca roots disable CA_ID --pool=POOL_ID --location=LOCATION
如需详细了解
gcloud privateca roots disable
命令,请参阅 gcloud privateca roots disable。删除 CA。
gcloud privateca roots delete CA_ID --pool=POOL_ID --location=LOCATION
即使 CA 具有有效证书,您也可以通过在
gcloud
命令中添加--ignore-active-certificates
标志来删除该 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 \
--location=LOCATION \
--format="value(expireTime.date())"
替换以下内容:
- CA_ID:CA 的名称。
- POOL_ID:包含 CA 的 CA 池的名称。
- LOCATION:CA 池的位置。如需查看位置的完整列表,请参阅位置。
该命令会返回 CA 服务删除 CA 的预期日期和时间。
2020-08-14T19:28:39
如需验证 CA 是否已永久删除,请运行以下命令:
gcloud privateca roots describe CA_ID --pool=POOL_ID --location=LOCATION
如果成功删除 CA,该命令会返回以下错误。
ERROR: (gcloud.privateca.roots.describe) NOT_FOUND: Resource 'projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificateAuthorities/CA_ID' was not found