了解如何为 Cloudflare for SaaS 自定义主机名管理自定义证书。有关用例和限制,请参阅 自定义证书。
本节介绍上传对应于某一 受支持类型 的自定义证书的一般流程。
要在仪表板中上传自定义证书,请在 创建自定义主机名 时选择 Custom certificate(自定义证书)。
有关 bundle method 选项的信息,请参阅 Cloudflare SSL/TLS 文档。
以下调用将上传供 app.example.com 使用的证书。
请注意,如果使用由 OpenSSL 生成的 ECC 密钥,需要先移除文件中的 -----BEGIN EC PARAMETERS-----...-----END EC PARAMETERS----- 部分。
- 更新文件并构建请求负载
cat app_example_com.pem-----BEGIN CERTIFICATE-----
MIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E
...
SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O
OeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7
-----END CERTIFICATE-----MYCERT="$(cat app_example_com.pem|perl -pe 's/\r?\n/\\n/'|sed -e 's/..$//')"
MYKEY="$(cat app_example_com.key|perl -pe 's/\r?\n/\\n/'|sed -e's/..$//')"将证书和密钥保存到环境变量(使用转义换行符)后,构建 payload:
$ echo $MYCERT
-----BEGIN CERTIFICATE-----\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\n-----END CERTIFICATE-----\n
$ request_body=$(< <(cat <<EOF
{
"hostname": "app.example.com",
"ssl": {
"custom_certificate": "$MYCERT",
"custom_key": "$MYKEY"
}
}
EOF
))- 使用
POST请求 上传证书和密钥。
证书包允许您向自定义主机名最多上传一个 RSA 和一个 ECDSA 自定义证书。此流程目前仅通过 API 支持。
要向自定义主机名上传 RSA 和 ECDSA 证书,请在 通过 API 创建自定义主机名 时将 bundle_method 设为 force,并定义 custom_cert_bundle 属性。
您也可以在对 Edit Custom Hostname 端点的 PATCH 请求中使用 "bundle_method": "force" 和 custom_cert_bundle。
使用 Delete Single Certificate And Key For Custom Hostname 端点,从证书包中移除其中一个自定义证书及对应密钥。
如果该证书是包中仅剩的证书,则无法删除。
要替换包含两个捆绑证书的证书包中的单个自定义证书,请使用 Replace Custom Certificate And Custom Key In Custom Hostname 端点。
您只能将 RSA 证书替换为另一个 RSA 证书,或将 ECDSA 证书替换为另一个 ECDSA 证书。
如果您希望从维护自定义证书切换为使用 Cloudflare 颁发的证书,可以零停机迁移该证书。
向自定义主机名发送带有 DCV method 值的 PATCH 请求。一旦 证书通过验证 且 主机名通过验证,Cloudflare 将移除旧的自定义证书并开始提供新证书。