惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
W
WeLiveSecurity
Cyberwarzone
Cyberwarzone
H
Help Net Security
Spread Privacy
Spread Privacy
Jina AI
Jina AI
G
GRAHAM CLULEY
Project Zero
Project Zero
aimingoo的专栏
aimingoo的专栏
P
Palo Alto Networks Blog
云风的 BLOG
云风的 BLOG
B
Blog RSS Feed
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
A
Arctic Wolf
L
LangChain Blog
T
The Blog of Author Tim Ferriss
MongoDB | Blog
MongoDB | Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
人人都是产品经理
人人都是产品经理
罗磊的独立博客
量子位
Microsoft Security Blog
Microsoft Security Blog
The Register - Security
The Register - Security
B
Blog
Microsoft Azure Blog
Microsoft Azure Blog
G
Google Developers Blog
小众软件
小众软件
Vercel News
Vercel News
V
Visual Studio Blog
IT之家
IT之家
C
Cisco Blogs
博客园 - 聂微东
Cisco Talos Blog
Cisco Talos Blog
Help Net Security
Help Net Security
S
Schneier on Security
PCI Perspectives
PCI Perspectives
C
Check Point Blog
V
Vulnerabilities – Threatpost
J
Java Code Geeks
Hugging Face - Blog
Hugging Face - Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
GbyAI
GbyAI
N
News and Events Feed by Topic
AWS News Blog
AWS News Blog
L
LINUX DO - 热门话题
SecWiki News
SecWiki News
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Tenable Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Recorded Future
Recorded Future

See you soon

哟,好久不见,无线打印 | See you soon 试试将文章版本化管理吧 | See you soon 使用 Quadlet 将 Podman 中的 Postgres 当作 systemd 服务运行 | See you soon 大他者,那个无时无刻都在盯着你的东西 | See you soon Laws of Software Engineering,软件工程定律 | See you soon 浅记多因素身份认证 | See you soon Linux 内核中的度量单位 | See you soon 重置 GPG 智能密钥 | See you soon 向 NAS 引入 samba | See you soon 无法重复键入的 Fcitx5 | See you soon ZFS 降级事故 | See you soon 记被 XanMod Kernel 和 AppArmor 联合坑的一次踩坑 | See you soon agent 的 skill 与 toolcall | See you soon 记一次服务器被挂恶意挖矿二进制 | See you soon 活着的 Arc | See you soon 于 Tokio 中卸载 CPU Bound 任务 | See you soon 如我所见,梦破碎的时候 | See you soon 74LS 家族手册 | See you soon JDK Projects 备忘录 | See you soon 关于历史 | See you soon 用 curl 下载 OnePlus 的 ROM | See you soon 实用命令切片 | See you soon 再见,Oh My Zsh。 | See you soon 你不应该复用 strings.Builder | See you soon 博客的明日 | See you soon 被 AppArmor 击杀的 Dockge | See you soon AI 时代的自我 | See you soon 支持删除的布隆过滤器 | See you soon 基于栈的虚拟机与基于寄存器的虚拟机 | See you soon RVA23 包含了什么 | See you soon Rust 的边界检查是否已经有很大的进步 | See you soon 使用 Rust 编写操作系统:Barebones | See you soon 使用 Rust 编写操作系统:引言 | See you soon 编译器笔记:rope | See you soon 编译器笔记:CST | See you soon Paradoxical 札记 | See you soon 简单的相似去重算法(基于向量) | See you soon 更加现代的 PaperMC Minecraft 插件设计指南 | See you soon 简单的 CFG 语法分析方法 | See you soon 简单地使用 Caddy 实现 CORS 配置 | See you soon 让 OpenCV 可以被静态链接 | See you soon 图片搜索笔笺 | See you soon 电路板设计笔记-保护 | See you soon 使用 Rust 实现 SnowflakeId | See you soon 农夫乐事 FaQ 启示 | See you soon 使用 Rust 实现拓展系统札记 | See you soon 遗传学定律的代码实现 | See you soon EN:The Journey of Rust and Procps | See you soon ZH:Rust 与 Procps 之旅 | See you soon 使用 debootstrap 与 schroot 构建一个纯净环境 | See you soon GPG添加新的用户信息 | See you soon GSoC2024 笔记:使用 Rust 重新实现 procps | See you soon JWT 小册 | See you soon 使用密钥登录 SSH | See you soon Guava:Cache | See you soon 编译器笔记:增量编译 | See you soon Gradle秘境:添加一个类似modCompileOnly的依赖块 | See you soon Minecraft:原始经济系统设计简述 | See you soon TinyRemapper笔记 | See you soon MicroOS:进阶 | See you soon MicroOS:起步 | See you soon Swapfile 指北 | See you soon GPG 物理密钥的安装与密钥的迁移 | See you soon 用GPG签名告诉大家这就是我的提交 | See you soon DFS:深度优先搜索 | See you soon 文章翻译:从init.vim到init.lua | See you soon 目录遍历攻击 | See you soon 如何挂载.img文件,以及如何使用QEMU模拟arm64环境 | See you soon 在树莓派上编译 OpenCV | See you soon 关于卸载BlueStacks后遇到的问题 | See you soon
令 acme.sh 使用 Cloudflare 的 DNS API 签发与续签证书 | See you soon
Krysztal Huang · 2026-02-25 · via See you soon

使用 acme.sh 通过 DNS 挑战的方式申请泛域名证书,且通过这种方式,我们可以很方面的申请 SSL 证书用于我们的内部服务,不会遇到因为使用自签名证书导致的各种麻烦。

acme.sh 支持非常多的 DNS 提供商的 DNS API,通过 DNS API 可以免去手动填写 _acme-challenge 的麻烦。

以 Cloudflare 为例

首先我们查看一下 acne.sh 需要 Cloudflare 什么信息:dns_cf.sh

#!/usr/bin/env sh

# shellcheck disable=SC2034

dns_cf_info='CloudFlare

Site: CloudFlare.com

Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_cf

Options:

CF_Key API Key

CF_Email Your account email

OptionsAlt:

CF_Token API Token

CF_Account_ID Account ID

CF_Zone_ID Zone ID. Optional.

'

也可以看 acme.sh 的 wiki 是怎么写的,不过我觉得代码比 wiki 更诚实一点:

As of June 2025, the Cloudflare Domain API can be accessed using three kinds of API keys:

User token; Account-owned token; or User Global API Key (Not recommended).

我们采用第一个方法,User token.

去 Cloudflare 的控制面板拿到如下的凭证,然后再补充一下 CF_Email

Terminal window

CF_Token="Y7VRjJ_**"

CF_Zone_ID="5f011**"

CF_Account_ID="29b0**"

CF_Email="***"

不管是签发还是续签,添加 --dns_cf 参数即可

Terminal window

# 续签

/usr/share/acme.sh/acme.sh --cron --dns_cf --home /certs

# 签发

/usr/share/acme.sh/acme.sh --issue -d krystzal.dev --dns_cf --home /certs

使用 systemd-timer 来实现定时刷新

我们可以使用 systemd-timer 来替代 crontab 实现定时续签,这里以每天续签为例

# acme.sh.service

[Unit]

Description=Renew certificates acquired via acme.sh

After=network.target network-online.target nss-lookup.target

Wants=network-online.target nss-lookup.target

Documentation=https://github.com/acmesh-official/acme.sh/wiki

[Service]

User=cert

Group=cert

Type=simple

ExecStart=/bin/acme.sh --cron --dns dns_cf --home /certs --dnssleep 600

SuccessExitStatus=0 2

Restart=on-failure

EnvironmentFile=/etc/systemd/system/acme.sh.env

# acme.sh.timer

[Unit]

Description=Run acme.sh daily

[Timer]

OnCalendar=*-*-* 00:00:00

Persistent=true

[Install]

WantedBy=timers.target

Terminal window

# acmd.sh.env

CF_Token="Y7VRjJ_**"

CF_Zone_ID="5f011**"

CF_Account_ID="29b0**"

然后执行一下刷新 systemd-daemon,接着启用一下 acme.sh.timer

Terminal window

systemctl daemon-reload

systemctl enable acme.sh.timer

支持的 DNS API 列表

NOTE

这个列表更新于 2026-02-25,而 acme.sh 会随着时间更新,因此请查看其仓库获得最新的列表

在每个 DNS API 具体操作的 .sh 的文件开头有写需要什么 API密钥,前往 DNS 服务商面板获取后写作具体的环境变量即可