通过 Cloudflare API 切换 SSL 证书类型
一、背景说明
原 DigiCert 一年期证书已停用,Cloudflare 现提供三种证书类型:
证书类型 | 有效期 | 兼容性 | 适用场景 |
---|---|---|---|
SSL.com | 3个月 | 99.9% 浏览器/移动设备 | 需广泛兼容性的业务 |
3个月 | 主流浏览器支持 | 谷歌生态服务优先 | |
Let's Encrypt | 3个月 | 现代设备支持 | 开发测试环境 |
📌 SSL.com 证书特性:
- 与 Certum 交叉签名
- 中间证书颁发机构根植于 2004 年
- 官方兼容性说明:Cloudflare CA 文档
二、操作步骤
1. 获取必要参数
🔑 Cloudflare Global API Key
- 访问 API Tokens 页面
- 点击 View 获取 Global API Key
🆔 域名区域 ID
- 登录 Cloudflare 控制台
- 在域名概览页右下角复制 Zone ID
📧 账号邮箱
- 查看地址:个人资料页
2. API 切换命令
切换到 SSL.com 证书
curl -sX PATCH "https://api.cloudflare.com/client/v4/zones/YOUR_ZONE_ID/ssl/universal/settings" \
-H "X-Auth-Email: YOUR_EMAIL" \
-H "X-Auth-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data '{"certificate_authority":"ssl_com"}'
切换到 Google 证书
curl -sX PATCH "https://api.cloudflare.com/client/v4/zones/YOUR_ZONE_ID/ssl/universal/settings" \
-H "X-Auth-Email: YOUR_EMAIL" \
-H "X-Auth-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data '{"certificate_authority":"google"}'
切换到 Let's Encrypt 证书
curl -sX PATCH "https://api.cloudflare.com/client/v4/zones/YOUR_ZONE_ID/ssl/universal/settings" \
-H "X-Auth-Email: YOUR_EMAIL" \
-H "X-Auth-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data '{"certificate_authority":"lets_encrypt"}'
3. 验证结果
✅ 成功响应示例
{
"result": {
"enabled": true,
"certificate_authority": "ssl_com"
},
"success": true,
"errors": [],
"messages": []
}
🔍 验证方式
控制台验证:
- 进入 SSL/TLS → Edge Certificates
- 查看证书颁发机构变化
命令行验证:
curl -Iv https://yourdomain.com 2>&1 | grep "issuer" # 预期输出:issuer: C=US; O=SSL.com; CN=SSL.com TLS ECC...
三、注意事项
- 缓存延迟:证书更新可能需要 5-10 分钟生效
API 安全:
- 切勿泄露 Global API Key
- 建议创建受限 API Token(路径:SSL and Certificates → Edit)
- 兼容性测试:使用 SSL Labs 测试工具 验证证书链
四、故障排查
常见错误 | 解决方案 |
---|---|
{"code":7003,"message":"..."} | 检查 Zone ID 是否正确 |
{"code":6003,"message":"..."} | 验证 API Key 是否有权限 |
证书未更新 | 清除浏览器缓存和本地 DNS |
📘 历史参考:原 DigiCert 证书切换教程
📚 API 文档:Total TLS 接口说明