问题排查

本页面介绍如何解决 Certificate Authority Service 的常见问题。

API 请求返回“HTTP 403 Forbidden”

如果 API 请求返回 HTTP 403 Forbidden 并显示消息 Read access to project PROJECT_NAME was denied,请使用以下解决方案。

解决方法

  1. 检查请求者的 IAM 权限。
  2. 检查请求的位置。不受支持的区域可能会返回权限遭拒错误。如需详细了解受支持的地理位置,请参阅地理位置

删除 CA 返回“HTTP 412 failed Precondition”(HTTP 412 失败前提条件)

如果您在删除 CA 时看到以下失败前提条件错误,请使用本部分中的解决方法。

  • Cannot perform Certificate Authority deletion, Certificate Authority is in state ENABLED.

解决方法

CA 需要处于 DISABLEDSTAGED 状态才能被删除。在安排删除 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
    

后续步骤