自动证书申请在启动 Caddy2 之前,如果目标域名(例如: www.example.com)已经解析到了本机,那么 Caddy2 启动后会尝试自动通过 ACME HTTP 挑战申请证书;如果期望使用 DNS 的方式申请证书则需要其他 DNS 插件支持,比如上面编译的 --with github.com/caddy-dns/gandi 为 gandi 服务商的 DNS 插件;关于使用 DNS 挑战的配置编写方式需要具体去看其插件文档,目前 gandi 的配置如下:
tls { dns gandi {env.GANDI_API_TOKEN}}
配置完成后 Caddy2 会通过 ACME DNS 挑战申请证书,值得注意的是即使通过 DNS 申请证书默认也不会申请泛域名证书,如果想要调整这种细节配置请使用 json 配置或管理 API 。
完整模块化配置样例了解了以上基础配置信息,我们就可以实际编写一个站点配置了;以下为本站的 Caddy 配置样例:
目录结构:
caddy├── Caddyfile├── mritd.com.caddy└── mritd.me.caddy
Caddyfile
Caddyfile 主要包含一些通用的配置,并将其抽到配置片段中,类似于 nginx 的 nginx.conf 主配置;在最后部分通过 import 关键字引入其他具体站点配置,类似 nginx 的 vhost 配置 。
(LOG) { log { # 日志格式参考 https://github.com/caddyserver/format-encoder 插件文档 format formatted "[{ts}] {request>remote_addr} {request>proto} {request>method} <- {status} -> {request>host} {request>uri} {request>headers>User-Agent>[0]}" { time_format "iso8601" } output file "{args.0}" { roll_size 100mb roll_keep 3 roll_keep_for 7d } }}(TLS) { # TLS 配置采用 https://mozilla.github.io/server-side-tls/ssl-config-generator/ 生成,SSL Labs 评分 A+ protocols tls1.2 tls1.3 ciphers TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256}(HSTS) { # HSTS (63072000 seconds) header / Strict-Transport-Security "max-age=63072000"}(ACME_GANDI) { # 从环境变量获取 GANDI_API_TOKEN dns gandi {$GANDI_API_TOKEN}}# 聚合上面的配置片段为新的片段(COMMON_CONFIG) { # 压缩支持 encode zstd gzip # TLS 配置 tls { import TLS import ACME_GANDI } # HSTS import HSTS}# 开启 HTTP3 实验性支持{ servers :443 { protocol { experimental_http3 } }}# 引入其他具体的站点配置import /etc/caddy/*.caddy
mritd.com.caddy
mritd.com.caddy 为主站点配置,主站点配置内主要编写一些路由规则,TLS 等都从配置片段引入,这样可以保持统一 。
【一个比 Nginx 功能更强大的 Web 服务器】www.mritd.com { # 重定向到 mritd.com(默认 302) redir https://mritd.com{uri} # 日志 import LOG "/data/logs/mritd.com.log" # TLS、HSTS、ACME 等通用配置 import COMMON_CONFIG}mritd.com { # 路由 route /* { reverse_proxy mritd_com:80 } # 日志 import LOG "/data/logs/mritd.com.log" # TLS、HSTS、ACME 等通用配置 import COMMON_CONFIG}
推荐阅读
- 比伽马射线暴威力更大的宇宙现象 太阳系中最热的星球
- 狐狸精的含义 狐狸精比喻什么样的人
- 两种菊花茶的比较,冬季喝菊花茶的好处
- 老人腿抽筋吃什么药比较好呢
- 34码的裤子是几个xl男?34码的裤子是几个xl运动裤_1
- 一加7pro和一加8pro对比-一加7pro和苹果8p-
- 梦境是不是另一个平行世界 做梦是不是平行时空的记忆
- 翡翠|翡翠做的头饰和翡翠做的簪子,这两个做一个对比,哪一个更得你心
- 西装|女子花49000元买了朔身衣,穿一个月毫无减肥效果
- 奥运会射箭比赛射程为多少?