问题排查

本页介绍了如何解决 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 前提条件失败

如果您在删除 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 池添加证书颁发政策

  • 证书模板或 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
    

后续步骤