问题排查
本页面介绍如何解决 Certificate Authority Service 的常见问题。
API 请求返回“HTTP 403 Forbidden”
如果 API 请求返回 HTTP 403 Forbidden 并显示消息 Read access to project PROJECT_NAME was denied
,请使用以下解决方案。
解决方法
- 检查请求者的 IAM 权限。
- 检查请求的位置。不受支持的区域可能会返回权限遭拒错误。如需详细了解受支持的地理位置,请参阅地理位置。
删除 CA 返回“HTTP 412 failed Precondition”(HTTP 412 失败前提条件)
如果您在删除 CA 时看到以下失败前提条件错误,请使用本部分中的解决方法。
Cannot perform Certificate Authority deletion, Certificate Authority is in state ENABLED.
解决方法
CA 需要处于 DISABLED
或 STAGED
状态才能被删除。在安排删除 CA 之前,请确保其状态。如需详细了解 CA 州,请参阅 CA 州。
证书颁发失败
CA Service 提供了多种政策控制措施,可用于管理证书颁发。如需详细了解政策控制功能,请参阅证书模板和颁发政策概览。
由于多种原因,证书颁发可能会失败。其中部分原因如下所示。
CA 池的证书颁发政策和证书模板之间存在冲突。
例如,假设颁发政策定义了扩展
foo
并为其分配值bar
,证书模板定义了扩展foo
并为其分配值bat
。为同一条附加信息指定两个不同的价值会引发冲突。解决方法
根据证书模板查看 CA 池的证书颁发政策,并找出并解决冲突。
如需详细了解颁发政策,请参阅向 CA 池添加证书颁发政策。
主题或主题备用名称 (SAN) 未通过证书模板或 CA 池的证书颁发政策中的 CEL 表达式评估。
解决方法
查看 CA 池的证书颁发政策和证书模板,并确保主题和 SAN 满足通用表达式语言 (CEL) 表达式设置的条件。如需详细了解 CEL 表达式,请参阅使用通用表达式语言。
为用例授予的 IAM 角色不正确。例如,为反映的身份分配
roles/privateca.certificateRequester
角色,或为默认身份模式分配roles/privateca.workloadCertificateRequester
角色。解决方法
请确认您已为默认身份模式分配了
roles/privateca.certificateRequester
角色,并为反映的身份分配了roles/privateca.workloadCertificateRequester
角色。如需详细了解如何使用身份反射,请参阅联合工作负载的身份反射。尝试在不受支持的场景中(例如不使用 Hub 工作负载身份)使用反映的身份模式。身份反射不受支持的场景会返回以下错误消息:
Could not use the REFLECTED_SPIFFE subject mode because the caller does not have a SPIFFE identity. Please visit the CA Service documentation to ensure that this is a supported use-case.
解决方法
确定您需要使用哪种类型的身份:默认身份或反映的身份。如果您需要使用反映的身份,请务必在某种受支持的场景中使用它。如需详细了解身份反射,请参阅联合工作负载的身份反射。
默认密钥大小限制拒绝模数大小小于 2048 位的 RSA 密钥。
行业最佳实践建议使用至少为 2048 位的 RSA 密钥。 默认情况下,CA Service 会阻止使用模数大小小于 2048 位的 RSA 密钥颁发证书。
解决方法
如果您要使用模数大小小于 2048 位的 RSA 密钥,则必须使用证书颁发政策明确允许它。请使用以下 YAML 示例来允许此类 RSA 密钥:
allowedKeyTypes: - rsa: minModulusSize: 1024