Caddy + Let's Encrypt 多节点证书管理

2026-07-10 · 分类:TLS/证书
CaddyACMELet's Encrypt

在多个边缘节点上管理 TLS 证书自动化续签时,需要避免 ACME 请求速率限制和单点故障。

架构

每个节点运行独立的 Caddy 实例,各自通过 HTTP-01 challenge 完成证书签发和续签。Caddy 内置 ACME 客户端,默认在证书到期前 30 天自动续签。

关键配置

确保 80 端口对外可达(ACME HTTP-01 验证需要),并且 DNS A 记录正确指向当前节点:

# Caddyfile 示例
http://edge.example.com {
    redir https://{host}{uri} 308
}
https://edge.example.com:8443 {
    bind 127.0.0.1
    root * /var/www/cover
    file_server
}

证书同步

如果多个服务(如 Hysteria2)需要使用同一张证书,可以设置定时同步任务:

# /usr/local/sbin/sync-cert
src=/var/lib/caddy/.local/share/caddy/certificates/
    acme-v02.api.letsencrypt.org-directory/edge.example.com/
dst=/etc/hysteria/certs/
install -m 644 $src/edge.example.com.crt $dst/fullchain.crt
install -m 600 $src/edge.example.com.key $dst/private.key
systemctl try-restart hysteria-server