问题排查
本页介绍了如何解决证书颁发机构服务的常见问题。
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