证书管理工具问题排查

本页介绍了您在使用证书管理器时可能会遇到的最常见错误。它还提供了诊断和解决这些错误的步骤。

如需有关解决与 TLS (SSL) 证书相关问题的帮助,请参阅排查 SSL 证书问题

从目标代理分离证书映射时出错

从目标代理分离证书映射时,您收到以下错误:

"There must be at least one certificate configured for a target proxy."

如果除了您尝试分离的证书映射中指定的证书之外,目标代理没有分配任何证书,就会发生此错误。如需分离映射,请先直接将一个或多个证书分配给代理。

将证书映射条目与证书相关联时出错

将证书映射条目与证书相关联时,您收到以下错误:

"certificate can't be used more than 100 times"

如果您尝试将证书映射条目与已与 100 个证书映射条目相关联的证书相关联,就会出现此错误。如需解决此问题,请执行以下操作:

  • 对于 Google 管理的证书,请创建另一个证书。将新的证书映射条目与此新证书相关联,并将新证书附加到负载平衡器。
  • 对于自行管理的证书,请使用新名称重新上传证书。将新的证书映射条目与此新证书相关联,并将新证书附加到负载平衡器。

与 CA Service 实例颁发的证书相关的问题

本部分列出了您在使用 Certificate Manager 部署 CA Service 实例签发的 Google 管理的证书时可能遇到的最常见错误及其可能的原因。

如果您收到 Failed to create Certificate Issuance Config resources 错误,请检查以下各项:

  • 生命周期。有效的证书有效期值介于 21 天到 30 天之间。
  • 轮替窗口百分比。有效的轮替窗口百分比范围为 1 到 99%。您必须设置相对于证书生命周期的轮替窗口百分比,以确保证书在证书颁发至少 7 天之后且在到期前至少提前 7 天进行续订。
  • 密钥算法。有效的密钥算法值为:RSA_2048ECDSA_P256
  • CA 池。CA 池不存在或配置错误。CA 池中必须包含至少一个已启用的 CA,并且调用方必须对目标 Google Cloud 项目拥有 privateca.capools.use 权限。对于区域证书,证书颁发配置资源必须在 CA 池所在的位置创建。

如果您收到 Failed to create a managed certificate 错误,请检查以下各项:

  • 您在创建证书时指定的证书颁发配置资源存在。
  • 调用方对您在创建证书时指定的证书颁发配置资源拥有 certificatemanager.certissuanceconfigs.use 权限。
  • 证书与证书颁发配置资源位于同一位置。

如果您收到 Failed to renew certificateFailed to provision certificate 错误,请检查以下各项:

  • Certificate Manager 服务账号对用于此证书的证书颁发配置资源中指定的 CA 池具有 roles/privateca.certificateRequester 权限。

    使用以下命令检查对目标 CA 池的权限:

    gcloud privateca pools get-iam-policy CA_POOL
    --location REGION
    

    替换以下内容:

    • CA_POOL:目标 CA 池的完整资源路径和名称
    • REGION:目标 Google Cloud 区域
  • 证书颁发政策生效。如需了解详情,请参阅与发行政策限制相关的问题

与发行政策限制相关的问题

如果证书管理器不支持证书签发政策对证书所做的更改,证书配置将失败,并且受管理证书的状态会更改为 Failed。如需解决此问题,请确认以下各项:

  • 证书的身份限制允许传递主题和主题备用名称 (SAN)。
  • 证书的最长有效期约束条件大于证书颁发配置资源的有效期。

对于之前的问题,由于 CA Service 已颁发证书,因此系统会根据 CA Service 定价向您收费。

如果您收到错误 Rejected for issuing certificates from the configured CA Pool,则表示证书颁发政策已屏蔽请求的证书。如需解决此错误,请检查以下各项:

对于之前的问题,由于 CA Service 尚未颁发证书,因此您无需向 CA Service 支付费用。

与 IAP 主机名匹配相关的问题

如果您在将证书管理器与 Identity-Aware Proxy (IAP) 搭配使用时意外收到 The host name provided does not match the SSL certificate on the server 错误,请检查您使用的证书是否适用于该主机名。此外,还会列出您在证书映射中配置的证书映射条目。您打算与 IAP 搭配使用的每个主机名或通配主机名都必须有专门的条目。如果主机名的证书映射条目缺失,请创建证书映射条目

证书选择期间回退到主要证书映射条目的请求始终会被 IAP 拒绝。

多视图域名验证失败

Google Cloud 会定期向证书授权机构 (CA) 请求 Google 管理的证书,以便对其进行续订。Google Cloud 用于续订证书的 CA 使用一种名为多视角颁发确认 (MPIC) 的多视角域名验证方法。 在此过程中,证书颁发机构会通过检查网域的 DNS 设置来验证网域控制权,如果是负载平衡器授权,则还会尝试与网域 IP 地址后面的服务器联系。 这些验证是从互联网上的多个 vantage 点进行的。如果验证流程失败,Google 管理的证书将无法续期。因此,负载平衡器会向客户端提供已过期的证书,导致浏览器用户遇到证书错误,API 客户端遇到连接失败问题。

为防止配置错误的 DNS 记录出现多视角网域验证失败,请注意以下事项:

  • 您的网域和任何子网域的 DNS A 记录(IPv4)和 DNS AAAA 记录(IPv6)指向与负载平衡器的转发规则(一条或多条)关联的 IP 地址。如果记录中存在任何其他地址,都可能会导致验证失败。
  • 负责执行 DNS 记录验证的 CA 会从多个位置查询 DNS 记录。确保您的 DNS 提供商对所有全球域名验证请求做出一致的响应。
  • 使用 GeoDNS(根据请求位置返回不同的 IP 地址)或基于位置的 DNS 政策可能会导致响应不一致,并导致验证失败。如果您的 DNS 提供商使用 GeoDNS,请停用它,或者确保所有区域都返回相同的负载平衡器 IP 地址。
  • 如果您使用负载平衡器授权方法预配 Google 管理的证书,则必须在 DNS 配置中明确指定负载平衡器的 IP 地址。 中间层(例如 CDN)可能会导致不可预测的行为。IP 地址需要可直接访问,请求路径中不得有任何重定向、防火墙或 CDN。如需了解详情,请参阅本文档中的CDN 后面的负载平衡器部分。
  • 建议您使用自己选择的 DNS 全球传播检查工具,验证所有相关 DNS 记录是否在全球范围内正确且一致地解析。

验证配置更改

配置 DNS 记录后,您可以通过创建新的证书并将其与现有证书一起连接到负载平衡器,来验证 DNS 记录是否正确。此步骤会强制向 CA 立即进行证书配置检查,以便您在几分钟内验证配置更改。如果没有此设置,现有证书的自动续期可能需要数天或数周时间,这会导致您的设置不确定。

如果证书状态变为 ACTIVE,则表示证书已颁发,这也证实您的 DNS 配置正确无误。目前,我们建议您移除之前的证书,以免为同一网域保留两个单独的证书。此过程不会中断流量到负载平衡器。

新证书可用作验证工具,其创建可确认使用 MPIC 进行多视角域名验证的设置是否正确。

CDN 后面的负载平衡器

对于启用了 CDN 的负载平衡器,请求路径中的某些第三方 CDN 提供商可能会导致验证请求失败。如果 CDN 提供商正在主动代理 HTTP(S) 流量,则可能会发生这种情况。

在这种情况下,我们建议您使用 DNS 授权方法来预配 Google 管理的证书。后一种方法不需要 CA 与负载平衡器联系。

后续步骤