[解决方案] Cloudflare 边缘证书(Google CA)卡在“等待验证 (TXT)”状态,将边缘证书颁发机构切换为 Let’s Encrypt
最近在 Cloudflare 上托管 US.KG或其他域名时,你可能会遇到与 Google CA 相关的问题。由于 Google CA 对 US.KG或其他域名区域可能存在的限制(可能是由于最近注册激增引发了此限制,但无论如何,我们不清楚具体原因),新注册的域名可能无法获得 Google CA(来自 Google Trust Service GST 的 Google 证书)。受影响的用户将看到“等待验证 (TXT)”状态:
要解决此问题,您需要使用 Cloudflare API 切换边缘证书颁发机构。有关详细文档,请参阅:Cloudflare API 文档。
您还可以参考以下简单指南,以帮助您将边缘证书颁发机构切换为 Let’s Encrypt:
1. 获取域名的区域 ID 和 API 密钥:
Zone ID:
API Token:
输入密码后,记下Zone ID 和 API Keys。
2. 使用 Curl 请求 API。
在 Windows 命令提示符中:
a. 打开 Windows 终端(或命令提示符)
b. 输入:
curl -X PATCH "https://api.cloudflare.com/client/v4/zones/<Domain Zone ID>/ssl/universal/settings" ^
-H "X-Auth-Email: <Cloudflare EMail>" ^
-H "X-Auth-Key: <API Key>" ^
-H "Content-Type: application/json" ^
--data "{\"enabled\":true,\"certificate_authority\":\"lets_encrypt\"}"
在 Linux(或类 Unix 系统)上:
a. 打开终端或通过 SSH 连接
b. 输入:
curl -X PATCH "https://api.cloudflare.com/client/v4/zones/<Domain Zone ID>/ssl/universal/settings" \
-H "X-Auth-Email: <Cloudflare EMail>" \
-H "X-Auth-Key: <API Key>" \
-H "Content-Type: application/json" \
--data '{"enabled":true,"certificate_authority":"lets_encrypt"}'
3. Python脚本:
import requests
def update_ssl_settings(domain_zone_id, email, api_key):
url = f"https://api.cloudflare.com/client/v4/zones/{domain_zone_id}/ssl/universal/settings"
headers = {
"X-Auth-Email": email,
"X-Auth-Key": api_key,
"Content-Type": "application/json"
}
data = {
"enabled": True,
"certificate_authority": "lets_encrypt"
}
response = requests.patch(url, headers=headers, json=data)
return response.json()
domain_zone_id = "<Domain Zone ID>"
email = "<Cloudflare EMail>"
api_key = "<API Key>"
response = update_ssl_settings(domain_zone_id, email, api_key)
print(response)
返回结果:
{"result":{"enabled":true,"certificate_authority":"lets_encrypt"},"success":true,"errors":[],"messages":[]}
替换 <Domain Zone ID>、<Cloudflare Email> 和 <API Key> 为您记下的值,完成后,请等待 10 分钟或更长时间,以颁发 SSL Edge 证书。