425 words
2 minutes
Cloudflare_edge_certificate

Introduction#

  • 如果您使用的是Business以上计划,或者有订阅Advanced Certificate Manager可以忽略以下内容。
  • 使用Business以下计划时,cloudflare不会给子域名添加通配符证书,如托管的是example.com,它会自动申请*.example.comexample.com的边缘证书,但它不会申请*a.example.com的边缘证书。

Actions#

  1. 创建一个workers应用,现有的也可以。
  2. 创建api token(可选)
  • 在登录cloudflare后点击右上角的人像,点击出现的Profile选项,点击出现在右侧边栏的API Token,点击出现蓝色的Create Token按钮
  • 选择Create Custom Token对应右边蓝色的按钮 Get start,再按如下图操作:

api_token1.jpeg
api_token2.jpeg

  • api token复制出来,只会出现这一次。
  • 复制以下脚本,在任意安装了curl能正常连接cloudflare的主机上执行:
#!/bin/bash
ACCOUNT_ID="your_account_id" # 进入你的域名的详情页面,拉到最底会看到 zone ID和 account ID
ZONE_ID="your_zone_id" # 同上
API_TOKEN="your_api_token" # 刚创建的
WORKER_DOMAIN="*.a.domain.com" # 要申请通配符证书的子域名
WORKER_NAME="worker-name" * 任意一个存在的worker
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/workers/domains" \
-X PUT \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_TOKEN" \
-d '{
"hostname": "'"$WORKER_DOMAIN"'",
"service": "'"$WORKER_NAME"'",
"zone_id": "'"$ZONE_ID"'",
"environment": "production"
}' > cert.log
  • 将上面的脚本保存,并赋予执行权限。

  • 执行结果可以在SSL/TLS下面的Edge Certificates下面查看,并且会在当前域名下添加一条类型为worker的记录,也可以在worker应用下查看。

  • 来自原作者youtuber@闹海金蛟脚本:

#!/bin/bash
ACCOUNT_ID=account id
ACCOUNT_EMAIL=email
ACCOUNT_KEY=Global API Key
WORKER_DOMAIN=*.domain.com
WORKER_NAME=worker name
ZONE_ID=zone id
curl https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/workers/domains \
-X PUT \
-H 'Content-Type: application/json' \
-H "X-Auth-Email: $ACCOUNT_EMAIL" \
-H "X-Auth-Key: $ACCOUNT_KEY" \
-d '{
"hostname": "'$WORKER_DOMAIN'",
"service": "'$WORKER_NAME'",
"zone_id": "'$ZONE_ID'",
"environment": "production"
}' > cert.log

Effect#

  • 使用cloudflare tunnel时,会很有用
Cloudflare_edge_certificate
https://infini.cv/posts/cloudflare_edge_certificate/
Author
infini
Published at
2026-01-09
License
CC BY-SA 4.0

Some information may be outdated