425 words
2 minutes
Cloudflare_edge_certificate
Introduction
- 如果您使用的是Business以上计划,或者有订阅Advanced Certificate Manager可以忽略以下内容。
- 使用Business以下计划时,cloudflare不会给子域名添加通配符证书,如托管的是
example.com,它会自动申请*.example.com和example.com的边缘证书,但它不会申请*a.example.com的边缘证书。
Actions
- 创建一个
workers应用,现有的也可以。 - 创建
api token(可选)
- 在登录cloudflare后点击右上角的人像,点击出现的
Profile选项,点击出现在右侧边栏的API Token,点击出现蓝色的Create Token按钮 - 选择
Create Custom Token对应右边蓝色的按钮 Get start,再按如下图操作:


- 把
api token复制出来,只会出现这一次。 - 复制以下脚本,在任意安装了
curl能正常连接cloudflare的主机上执行:
#!/bin/bashACCOUNT_ID="your_account_id" # 进入你的域名的详情页面,拉到最底会看到 zone ID和 account IDZONE_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/bashACCOUNT_ID=account idACCOUNT_EMAIL=emailACCOUNT_KEY=Global API Key
WORKER_DOMAIN=*.domain.comWORKER_NAME=worker nameZONE_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.logEffect
- 使用
cloudflare tunnel时,会很有用
Cloudflare_edge_certificate
https://infini.cv/posts/cloudflare_edge_certificate/ Some information may be outdated