Cloudflare有趣的问题——ssl错误之切换Cloudflare边缘证书

警告:按照本文操作可能会出现服务中断,在操作之前一定要考虑清楚。

为什么要切换Cloudflare边缘证书?

由于使用CNAME接入Cloudflare,有两个域名是使用的Let’s Encrypt,但发现一些问题:

因为只有3个月有效期,需要经常更换证书。

由于Cloudflare或Let’s Encrypt更改政策需要TXT验证。 加之最近cf添加新域名容易出现ssl证书错误问题。

具体操作

前期准备

需要在Cloudflare上获取对应的域名区域 ID和账户Global API Key密钥 代码

curl -X PATCH https://api.cloudflare.com/client/v4/zones/域名区域ID/ssl/universal/settings \ -H Content-Type: application/json \ -H X-Auth-Email: 账户邮箱 \ -H X-Auth-Key: Global API Key密钥 \ --data '{certificate_authority: digicert}'

digicert:要申请的证书名称,还可以替换为sectigo(提示无权限)和lets_encrypt。

后续操作

将上面代码修改并执行后,就可以使用新证书了。在设置新的子域名前要先开启禁用通用 SSL, 否则还会使用Let’s Encrypt,在等待10分钟再关闭禁用通用SSL,就可以使用新的证书了。

注意事项

在证验证时,可能会出现验证错误,可以先将域名NS设置为Cloudflare的,在证书申请完成后再改回自用的。

Done

  • 搞定,应该是1年边缘证书,也有可能是3个月,试一试吧。