Cloudflare切换SSL证书颁发者

写这篇文章的缘由


Cloudflare 目前 Free 计划提供两种证书,一种是 DigiCert 根,一种是 ISRG Root X1 根,在控制台使用应该是随机分配的,没办法指定.
然后在看 Cloudflare API 文档的时候,发现了一个文档没有提及的参数 certificate_authority ,实验了一下,可以成功切换证书.

为啥要更换证书提供者


ISRG Root X1 下签发的证书,由于使用了新的 ECC 证书,所以为了兼容性必须附带两级中间证书.

1
ISRG Root X1 -> ISRG Root X2 -> E1 -> cuojue.org

DigiCert 下签发的证书兼容性更广,证书链也更短,只有一级中间证书.

1
DigiCert Baltimore Root -> Cloudflare Inc ECC CA-3 -> cuojue.org

并且 Let’s Encrypt 在国内还有 OCSP 验证服务器被墙的问题

如何使用


使用 PATCH 方法对 cloudflare 的 api 进行请求

1
2
3
4
5
curl -X PATCH "https://api.cloudflare.com/client/v4/zones/你的域名区域ID/ssl/universal/settings" \
-H "X-Auth-Email: 你的CF邮箱" \
-H "X-Auth-Key: 你的APIKEY" \
-H "Content-Type: application/json" \
--data '{"enabled":true,"certificate_authority":"digicert"}'

如上的 curl 访问是切换到 DigiCert ,如果想换到 Let's Encrypt 则修改其中的 digicertlets_encrypt

返回

1
{"result":{"enabled":true,"certificate_authority":"digicert"},"success":true,"errors":[],"messages":[]}

就代表成功了,去控制台也可以看到新的证书了~

获取区域 ID 和 APIKEY 的地方


Cloudflare切换SSL证书颁发者
https://cuojue.org/read/Cloudflare-certificate-authority.html
作者
WeiCN
发布于
2022年3月19日
更新于
2022年3月19日
许可协议