问题排查
本页介绍了如何解决 Certificate Authority Service 的常见问题。
API 请求返回 HTTP 403 Forbidden
如果 API 请求返回 HTTP 403 Forbidden 并包含消息 Read access to project PROJECT_NAME was denied
,请使用以下解决方案。
解决方法
- 检查请求者的 IAM 权限。
- 检查请求的位置。不受支持的区域可能会返回权限遭拒错误。如需详细了解受支持的位置,请参阅位置。
删除 CA 时返回 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 池添加证书颁发政策。
证书模板或 CA 池的证书颁发政策中的主题或主题备用名称 (SAN) 未通过 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 服务会阻止使用模数大小小于 2048 位的 RSA 密钥颁发证书。
解决方法
如果您想使用模数大小小于 2048 位的 RSA 密钥,则必须使用证书颁发政策明确允许使用此类密钥。请使用以下 YAML 示例来允许使用此类 RSA 密钥:
allowedKeyTypes: - rsa: minModulusSize: 1024