本页面提供相关说明,介绍如何手动触发 Google Distributed Cloud (GDC) 隔离 Web 端点的证书重新签发。
准备工作
如需获得访问命名空间中证书所需的权限,请让您的组织 IAM 管理员向您授予 Web TLS 证书管理员 (web-tls-cert-admin
) 角色。
在重新签发证书时,请考虑以下账号要求:
- 使用基础设施运维人员 (IO) 账号访问系统命名空间中的证书。请让您的 IO 执行此任务。
- 使用平台管理员账号访问其他命名空间中的证书。
重新签发证书
您可以通过更新注解来手动重新签发证书。如果默认证书签发方发生更改,除非证书即将过期,否则 Distributed Cloud 不会自动重新签发由之前的默认证书签发方签名的证书。
如需手动触发证书重新签发,请使用 kubectl
CLI 执行以下步骤:
将目标
Certificate
的manual-reissuance
注解设置为requested
。以下示例更新了istio-system
命名空间中的default-wildcard-cert
证书,该证书使用当前的默认证书签发者:kubectl annotate --overwrite certificate.pki.security.gdc.goog default-wildcard-cert -n istio-system pki.security.gdc.goog/manual-reissuance='requested'
在重新签发证书期间,您可能会看到
in-progress
注解值处于过渡状态。等待manual-reissuance
注解值显示finished
:kubectl -n istio-system get certificate.pki.security.gdc.goog/default-wildcard-cert -ojson | jq -r ' .metadata.annotations."pki.security.gdc.goog/manual-reissuance"'
输出类似于以下内容:
finished
验证证书颁发者;它必须与证书规范中提及的颁发者一致,或者(如果未指定)颁发者必须与当前默认颁发者一致:
kubectl -n istio-system get certificate.pki.security.gdc.goog/default-wildcard-cert -ojson | jq -r ' .status.issuedBy'
输出类似于以下内容:
{ "name": "byo-cert-issuer", "namespace": "pki-system" }
自带证书手动轮替
当您触发并完成手动自带证书 (BYO cert) 轮换时,必须为之前签名的自带证书对新生成的证书签名请求 (CSR) 进行签名。如需了解详情,请参阅为自带证书签名。
在轮替期间,Distributed Cloud 会创建新的私钥和公钥对。这会导致之前上传的签名证书与新的 CSR 不兼容。如果证书规范自初次上传后未发生变化,则之前上传的证书会继续使用,直到过期。如果规范发生变化,则会发生以下事件之一:
- Distributed Cloud 使用现有的匹配证书。
- 备用证书授权机构 (CA) 颁发新证书。
自带证书手动轮换示例
在以下示例中,您会看到之前已签名的自带证书触发了手动轮换:
byoCertStatus
显示证书type
值为Ready
,reason
值是Issued
,其lastTransitionTime
值比之前的值更早:{ "byoCertStatus": { "csrStatus": { "conditions": [ { "lastTransitionTime": "2024-05-03T22:38:43Z", "message": "", "observedGeneration": 2, "reason": "WaitingForSigning", "status": "False", "type": "Ready" } ], "csr": "LS0tLS1CRUdJTiBDRVJ..." }, "signedCertStatus": { "conditions": [ { "lastTransitionTime": "2024-05-03T22:38:43Z", "message": "RawSubjectPublickKeyInfo does not match with the CSR", "observedGeneration": 2, "reason": "Rejected", "status": "False", "type": "Ready" } ] } }, ```
在以下示例中,您会看到之前已签名的自带证书触发手动轮换的输出:
- 在
signedCertStatus
中,reason
字段显示Rejected
,这是因为之前签名的证书在轮替后不再与新的 CSR 匹配。 CSR
reason
声明WaitingForSigning
:"conditions": [ { "lastTransitionTime": "2024-05-03T08:42:10Z", "message": "Certificate is issued", "observedGeneration": 2, "reason": "Issued", "status": "True", "type": "Ready" } ], "errorStatus": { "errors": [ { "code": "PLATAUTH2002", "message": "Waiting for CSR signing" } ], "lastUpdateTime": "2024-05-03T22:38:43Z" }, "issuedBy": { "name": "byo-cert-issuer", "namespace": "pki-system" } }
管理证书签名提醒
对于初始签发、轮替和失效的证书签名提醒,您的 IO 必须按照 PKI 运行手册中以下部分记录的问题排查步骤来解决:
对于子 CA 错误代码:
PLATAUTH2001
,请参阅 PLATAUTH-R2001。对于自带证书错误代码:
PLATAUTH2002
,请参阅 PLATAUTH-R2002。