前言
前段时间申请的免费域名 eu.org 批准了,今天就把 NS 改到了Cloudflare,顺便看了下证书,发现是 Let’s Encrypt,因为 Let’s Encrypt 在国内还有 OCSP 验证服务器被墙的历史,所以不想使用 Let’s Encrypt 证书,但 Cloudflare 后台又无法更改为其他证书,所以就只有使用 Cloudflare API 来修改了。
介绍
Cloudflare 目前 Free 计划提供四种证书, DigiCert
根证书(即 CF 的默认签发的证书,兼容性更广,证书链也更短,只有一级中间证书,证书为期一年更换)、 Let’s Encrypt
根证书(证书为其三个月更换,有被墙的黑历史,慎用)、 Google Trust Services
根证书(证书为其三个月更换,博主测试后发现 eu.org 配置后墙内无法使用,其他后缀无此问题,可选用), Sectigo
根证书(这个仅作为备份,不能主动启用),在控制台使用应该是随机分配的,没办法指定。
切换方法
博主在看 Cloudflare API 文档的时候,发现了一个参数 certificate_authority
,实验了一下,可以成功切换证书。
LINUX SSH 命令使用 PATCH
方法对 cloudflare 的 api 进行请求
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"}'
APIKEY – 我的个人资料 – API 令牌 – API 密钥 – Global API Key – 查看
博主设置 curl 访问是切换到 digicert
。
如果想换到 Let's Encrypt
则修改其中的 digicert
为 lets_encrypt
如果想换到 Google Trust Services
则修改其中的 digicert
为 google
{"result":{"enabled":true,"certificate_authority":"digicert"},"success":true,"errors":[],"messages":[]}
响应出上面信息代表已经修改成功,可以去控制台也可以看到新的证书了;
把上面的”enabled”改为 false
提交一次,再改为 true
反复提交一次,刷新重新颁发证书;
或者在控制台 SSL/TLS – 边缘证书 – 禁用通用 SSL,先禁用,再启用,就会更新到新证书;
结语
博主自己使用 Cloudflare 自带的 DigiCert
根证书,因为其证书兼容性更广,证书链也更短,只有一级中间证书,访问速度相对较快。
这里注意下,貌似修改以后短时间内是无法再次修改的,估计是不让频繁更换证书类型。
>> 所有文章均基于分享的原则,所有言论均个人观点,请注意全部都不是推荐,是分享!分享!分享!
暂无评论内容