您可以使用 SSLShopper Certificate Key Matcher ↗ 等外部工具检查证书,并确保密钥匹配。
或者,使用 openssl 通过比较两个文件的公钥哈希来验证匹配。此方法适用于 RSA 和 ECDSA 证书:
openssl x509 -noout -pubkey -in certificate.crt | openssl md5
openssl pkey -pubout -in private.key | openssl md5如果两个输出匹配,则证书和密钥是有效的一对。
您可以使用 openssl 检查证书的所有详情:
openssl x509 -in certificate.crt -noout -text然后,在上传前确保所有信息正确。
Cloudflare 不接受受密码保护的私钥。如果您的私钥需要密码,请在上传前将其移除。以下命令适用于 RSA 和 ECDSA 密钥:
openssl pkey -in protected.key -out unprotected.key上传到 Cloudflare 时使用 unprotected.key 文件。详细说明请参阅移除密钥文件密码。
私钥必须采用以下未加密格式之一:
- PKCS#8
- PKCS#1
- Elliptic Curve
如果您在迁移域名时未从先前 zone 删除 Custom 证书,该证书可能仍会优先并向访客出示,直到先前 zone 被删除。
详情请参阅在 Cloudflare 账户之间迁移域名。
由于 Let's Encrypt——Cloudflare 使用的证书颁发机构 (CA) 之一——已宣布对其信任链进行更改,您可能会遇到问题。
如果您使用的是自己作为 Custom 证书上传的 Let's Encrypt 证书,请考虑以下事项:
- 如果您使用 compatible 或 modern 打包方法,并且在 2024 年 9 月 9 日之前上传了证书,请更新您的 Custom 证书,以便可以与新证书链打包。
- 如果您使用 user-defined 打包方法,请确保在 2024 年 9 月 30 日之后上传的证书不使用 Let's Encrypt 交叉签名链。
根本原因
您尝试上传的证书无效。例如,可能存在多余行,BEGIN/END 文本不正确,或复制/粘贴后添加了额外字符。
在使用 PATCH API 调用进行更新的情况下,这可能意味着路径参数 {custom_certificate_id} 无效。
解决方案
仔细检查证书内容。您可以使用 openssl 检查证书的所有详情:
openssl x509 -in certificate.crt -noout -text使用 API 时,仔细检查 {custom_certificate_id} 路径参数。您可以通过列出现有 Custom 证书(响应中的 id)确认证书 ID。
根本原因
您已用尽 Custom 证书配额。
解决方案
如果您正在续订现有证书,请更新现有证书,而不是上传新证书。通过仪表板(或 API PATCH 方法)更新现有证书会复用其配额槽位,并避免停机。
如果您确实需要为不同主机名创建新证书,请先删除未使用的证书,或联系您的客户团队(Enterprise)以增加配额。
根本原因
您尝试上传已上传过的 Custom 证书。
解决方案
如果您正在使用更新的过期时间或密钥材料续订证书,请更新现有证书,而不是上传新证书。通过仪表板(或 API PATCH 方法)更新可避免停机,并且不会消耗额外的配额槽位。
根本原因
一个 Custom 证书包每种签名算法只能有一张证书(例如,一张 RSA 和一张 ECDSA 证书)。
解决方案
不要上传新证书,而是使用仪表板中的编辑选项或 PATCH API 端点更新现有证书。
根本原因
当证书包结构存在问题时会发生此错误。您必须先删除包中的其他证书,然后才能删除此证书。
解决方案
先删除证书包中的其他证书,然后再删除此证书。如果问题仍然存在,请联系 Cloudflare 支持。
根本原因
您尝试将证书上传到自定义源信任存储,但该证书不是有效的根 CA 证书。
解决方案
创建自签名根 CA 证书时,请确保对 OpenSSL 使用 -extensions v3_ca 选项。更多详情请参阅此社区帖子 ↗。
The SSL attribute is invalid. Please refer to the API documentation, check your input and try again.(SSL 属性无效。请参阅 API 文档,检查输入后重试。)(Code: 1434)
根本原因
您尝试上传的 Custom 证书不支持基于 Chromium 的浏览器所需的任何密码。
解决方案
修改证书以支持 Chromium 支持的密码,然后重试。
根本原因
Custom 证书的配额取决于证书类型(Custom Legacy 与 Custom Modern)。
如果您尝试上传某种证书类型但已达到配额,将收到此错误。
解决方案
首先,在 Edge Certificates(边缘证书) ↗ 页面检查您的 Custom 证书权益。
然后,在实际上传或编辑证书时,确保为 Legacy Client Support(旧版客户端支持) 选择适当的选项。
The certificate chain you uploaded cannot be bundled using Cloudflare's trust store. Please check your input and try again.(上传的证书链无法使用 Cloudflare 信任存储进行捆绑。请检查输入后重试。)(Code: 2100)
根本原因
您尝试上传同时包含根证书和叶证书的 Custom 证书。
解决方案
仅上传叶证书。
The certificate chain you uploaded has no leaf certificates. Please check your input and try again.(上传的证书链不包含叶子证书。请检查输入后重试。)(Code: 2101)
根本原因
您尝试上传根 + 中间 + 中间 .crt 文件,但实际叶证书在单独的文件中。
解决方案
将叶证书添加到 .crt 文件中,或仅使用叶证书本身,因为证书颁发机构在我们的信任存储中拥有公共信任链。
The certificate chain you uploaded does not include any hostnames from your zone. Please check your input and try again.(上传的证书链不包含你 zone 中的任何主机名。请检查输入后重试。)(Code: 2103)
根本原因
Cloudflare 会验证上传的 Custom 证书是否包含关联 zone 的主机名。此外,该主机名必须作为 Subject Alternative Name (SAN) 包含。这遵循 CA/Browser Forum ↗ 设定的标准。
解决方案
确保您的证书包含指定 zone 中主机名的 Subject Alternative Name (SAN)。您可以使用下方的 openssl 命令,并在输出中查找 Subject Alternative Name。
openssl x509 -in certificateFile.pem -noout -text如果不存在,您将需要请求新证书。
The private key you uploaded is invalid. Please check your input and try again.(上传的私钥无效。请检查输入后重试。)(Code: 2106)
根本原因
Cloudflare 要求为 SSL 私钥和证书使用单独的、经 pem 编码的文件。
解决方案
联系您的证书颁发机构 (CA),确认当前证书是否满足此要求,或请求 CA 协助进行证书格式转换。
确保您的证书符合这些要求。
在 Cloudflare 仪表板中上传证书之前,检查证书和私钥是否匹配。此外部资源 ↗可能会有所帮助。
根本原因
您上传的证书和私钥未形成有效的一对。私钥与证书中的公钥不对应。在上传期间选择了错误的密钥文件时可能发生这种情况。
解决方案
确保私钥与您正在上传的证书对应。您可以通过比较两个文件的公钥哈希来验证。此方法适用于 RSA 和 ECDSA 证书:
openssl x509 -noout -pubkey -in certificate.crt | openssl md5
openssl pkey -pubout -in private.key | openssl md5如果输出不匹配,则证书和密钥不匹配。
根本原因
处理您的请求时发生内部错误。
解决方案
等待几分钟后重试。如果问题仍然存在,请联系 Cloudflare 支持,并提供捕获失败上传尝试的 HAR 文件。