站点都启用
HTTPS
默认情况下,Caddy 会为您的所有站点自动获取和续订 TLS 证书。
自定义域名的 HTTPS/TLS
几乎每个白标 SaaS 的秘诀都是 Caddy 原创的按需 TLS 功能。轻松地将您的 SaaS 业务扩大数倍!
动态配置证书
借助按需 TLS,只有 Caddy 会在 TLS 握手期间动态地获取、续订和维护证书。非常适合客户拥有的域名。
大规模扩展您的 TLS
其他 Web 服务器和脚本证书工具在处理成千上万个站点或数千个实例时会崩溃。Caddy 旨在在这种规模下可靠地管理证书。

世界上最先进的 HTTPS 服务器
您所需的 TLS 和 PKI 🔐
Caddy 默认使用 TLS 安全地服务所有站点。它还可以为您管理跨服务器和客户端群的内部 PKI。
在线配置 API ⚡️
Caddy 的原生配置是一个 JSON 文档,您可以使用 RESTful 配置 API 导出和操作它。
符合 PCI、HIPAA 和 NIST 标准 ✅
Caddy 的 TLS 默认设置是安全的,并通过 PCI、HIPAA 和 NIST 合规性要求。是的,默认设置:无需麻烦。
localhost 的 HTTPS 🏠
当我说 Caddy 为每个站点提供 HTTPS 服务时,我们是认真的。即使是 localhost 和内部 IP 也通过 TLS 提供服务,TLS 使用完全自动化的自管理 CA 的中间证书,该证书会自动安装到大多数本地信任存储中。
集群协调 🌐
只需使用相同的存储配置多个 Caddy 实例,它们将自动协调证书管理作为一个集群,并共享密钥和 OCSP 状态等资源!
更少的活动部件 ⚙️
简化您的基础设施!Caddy 可以节省资金,提高开发人员的工作效率,并减少生产中的问题。
体验一下
通过我们的托管演示,探索 Caddy 的自动 HTTPS 功能。
将任何名为 caddydemo
的子域的 DNS 记录指向以下任一地址
CNAME demo.caddyserver.com
或
A 138.68.4.62
AAAA 2604:a880:2:d0::9dd:9001
然后在您的浏览器中访问它。
您会注意到 Caddy 如何自动为您的域名配置证书。
无法工作? 确保使用已注册域名的直接子域名,而不是“子子域名”。验证您是否已使用正确的值创建了上面显示的公共 DNS 记录。您可能需要等待传播时间。请查阅您的 DNS 提供商的文档或支持以获得帮助。您的浏览器/客户端必须设置 TLS 服务器名称指示(大多数都设置了)。
可能有效的子域名示例: caddydemo.example.net
, caddydemo.example.com.au
Caddy 能够为任何域名和 IP 提供 TLS 服务。此演示有意限制了范围。
使用 Caddy 部署您自己的 PKI
Caddy 不仅是证书自动化领域的行业领导者,还拥有功能齐全的 PKI 套件,可用于您自己的全自动化内部 PKI 和私有 CA。
Caddy 由开源 Smallstep 库提供支持,成为一个自我管理的证书颁发机构。
localhost {
respond "Hello from HTTPS!"
}
192.168.1.10 {
respond "Also HTTPS!"
}
https://127.0.0.1 {
respond "Plain HTTP"
}
创建和使用您自己的 CA
Caddy 允许您定义任意数量的 CA。根密钥和中间密钥会自动生成,并且中间密钥会在过期前续订。
部署一个实例以充当 ACME 服务器。然后,其他 Caddy 实例可以使用它来获取证书。
{
pki {
ca corporate {
name "Our Corporation Authority"
}
}
}
internal.example.com {
# ACME endpoint: /acme/corporate/directory
acme_server {
ca corporate
}
}
{
"apps": {
"tls": {
"certificates": {
"automate": [
"example.com",
"sub.example.com",
"example.net"
]
}
}
}
}
保持证书续订
Caddy 不仅仅是一个 Web 服务器。例如,此配置就是为一组域名获取和续订证书所需的全部内容。
可以编写额外的配置来连接证书维护事件,然后可以使用这些事件与外部脚本和工具集成。
专家推荐
学术界和行业专家都推荐 Caddy,它因其安全默认设置、最佳实践和独特的先进功能集而在同行评审期刊中被引用。

“运行 Caddy 的服务器几乎普遍部署了 HTTPS 并使用现代 TLS 配置。……我们希望看到其他流行的服务器软件效仿 Caddy 的领先地位。”
—Josh Aas、Richard Barnes、Benton Case、Zakir Durumeric、Peter Eckersley、Alan Flores-López、J. Alex Halderman、Jacob Hoffman-Andrews、James Kasten、Eric Rescorla、Seth Schoen 和 Brad Warren。 2019 年。Let's Encrypt:用于加密整个 Web 的自动化证书颁发机构。 在 2019 年 ACM SIGSAC 计算机和通信安全会议 (CCS '19) 会议记录中。美国纽约州纽约:美国计算机协会,2473–2487。https://doi.org/10.1145/3319535.3363192

“TLS 必须默认启用……而 Caddy Web 服务器是一个良好且可用的示例。”
—Katharina Krombholz、Wilfried Mayer、Martin Schmiedecker 和 Edgar Weippl。 2017 年。“我不知道自己在做什么” - 关于部署 HTTPS 的可用性。 在第 26 届 USENIX 安全研讨会 (USENIX Security 17) 中,USENIX 协会,加拿大不列颠哥伦比亚省温哥华,1339-1356。检索自 https://www.usenix.org/conference/usenixsecurity17/technical-sessions/presentation/krombholz

“除了 Caddy 之外,没有流行的服务器软件进行 [会话票证密钥轮换]。”
—Drew Springall、Zakir Durumeric 和 J. Alex Halderman。 2016 年。衡量 TLS 加密快捷方式的安全危害。 在 2016 年互联网测量会议 (IMC '16) 会议记录中,美国加利福尼亚州圣莫尼卡:美国计算机协会,33-47。https://doi.org/10.1145/2987443.2987480
具有前瞻性的反向代理
Caddy 的代理旨在尽可能向前兼容,并包含主要功能:负载均衡、主动和被动健康检查、动态上游、重试、可插拔传输,当然还有一流的 TLS 安全性。
代理 HTTP、FastCGI、WebSocket 等
能够代理 HTTP 和 HTTPS,以及 WebSocket、gRPC、FastCGI(通常是 PHP)等等!底层传输模块可扩展,适用于任何生成 HTTP 响应的自定义方式。
动态后端
为 Caddy 提供静态后端列表,或启用模块以在每次请求期间动态检索后端:非常适合快速变化的环境。Caddy 与您的基础设施完美融合!
高可用性
Caddy 附带一整套高可用性 (HA) 功能:高级健康检查、优雅(无缝)配置更改、熔断、负载限制、在线重试等。最棒的是什么?这一切都是免费的。没有企业级付费墙。
example.com
# Serve PHP sites
handle /blog/* {
root * /var/www/wordpress
php_fastcgi localhost:9000
file_server
}
# Proxy an autoscaling API with dynamic backends
reverse_proxy /api/* {
dynamic srv _api._tcp.example.com
}
# Proxy a compute-heavy distributed service
# with load balancing and health checks
reverse_proxy /service/* {
to 10.0.1.1:80 10.0.1.2:80 10.0.1.3:80
lb_policy least_conn
lb_try_duration 10s
fail_duration 5s
}
# Proxy everything else to an HTTPS upstream
reverse_proxy https://service.example.com {
header_up Host {upstream_hostport}
}
生产级静态文件服务器
提供静态文件是一种经过验证的、高效地向大量客户端交付站点的方法。Caddy 具有强大的文件服务器,可以与其他中间件功能结合使用,从而轻松构建网站。
压缩
Caddy 可以动态压缩文件或提供预压缩文件以获得额外的性能。Caddy 也是第一个支持 Zstandard 编码的 Web 服务器。
虚拟文件系统
从任何地方提供您的静态站点:本地文件系统、远程云存储、数据库,甚至嵌入在服务器二进制文件中!
范围请求、ETag 等
与许多旨在用于临时本地开发的临时文件服务器不同,Caddy 完全支持范围请求、ETag 和完整的生产功能集。
目录文件浏览器
如果请求没有索引文件的目录,Caddy 可以显示一个优雅的文件浏览器,其中包含面包屑导航、文件大小可视化、文件类型图标和网格视图。
example.com
root * /var/www
# Serve precompressed files if present
file_server /downloads/* {
precompressed
}
# Compress everything else that would benefit
encode zstd gzip
# Static site using database as file system
file_server /database/* {
fs sqlite data.sql
}
# Static site embedded within the Caddy binary
file_server /embedded/* {
fs embedded
}
# (Range/Etag/etc. all work without extra config)
# Serve static site with directory listings
file_server browse


灵活的配置,兼容任何工作流程
以您的方式配置您的服务器。Caddy 的原生配置文件格式是 JSON,借助 Caddy 的配置适配器,您可以使用您喜欢的任何配置文件格式。所有配置都通过 RESTful 管理 API 发布,Caddy 的 CLI 可帮助您轻松处理配置文件。
$ caddy start --config caddy.json $ curl localhost:2019/id/my_handler \ -X PATCH \ -H "Content-Type: application/json" \ -d '{ "handler": "static_response", "body": "Work smarter, not harder." }' $ curl localhost:2019/config/ | jq
JSON 配置 API
Caddy 的原生配置文件格式是 JSON,为您提供自动化、大规模部署的强大功能和灵活性。
通过 直观、可编程的 REST API 进行动态配置更改,该 API 提供 ACID 保证。它也是安全范围化的,这意味着 URI 路径限制更改,从而不可能意外更改配置的其他部分。
Caddyfile
虽然 JSON 提供了最终的控制,但大多数人更喜欢使用 Caddyfile,因为它使您只需几行手写代码即可启动并运行生产就绪的站点。Caddyfile 的大小通常 仅为功能较弱的 nginx 配置的 ~15-25%。
caddyserver.com
root * src
file_server
templates # markdown & syntax highlighting!
encode zstd gzip
redir /docs/json /docs/json/
rewrite /docs/json/* /docs/json/index.html
rewrite /docs/* /docs/index.html
reverse_proxy /api/* localhost:9002
$ caddy run \ --config nginx.conf \ --adapter nginx
配置适配器
使用任何内容(甚至是 NGINX 配置文件!)为 Caddy 提供动力!
借助对配置适配的一流支持,您可以使用您喜欢的格式配置您的 Web 服务器:YAML、TOML、CUE、NGINX、HCL、Dhall、带有注释的 JSON,甚至 MySQL 数据库……或任何其他内容。Caddyfile 是一个内置的配置适配器。
无与伦比的可扩展性
Caddy 是世界上唯一采用其新型模块化架构的服务器。Caddy 的核心是一个配置管理器,它运行应用程序,如 HTTP 服务器、内部证书颁发机构、TLS 证书管理器、进程管理器等等。
由于其独特的设计,我们可以提供无限的功能,而不会使代码库膨胀。只需编译您需要的内容。
无限能力
几乎所有“执行某些操作”的配置部分都是可插拔的。Caddy 以如此精简的软件包提供无限的功能。
原生 CPU 性能
没有 RPC 调用或脆弱的依赖关系管理。插件被编译到静态二进制文件中,从而确保成功部署和闪电般的运行时。
易于开发
编写 Caddy 插件就像编写 Go 包一样容易。对于任何 Go 程序员来说,这是一个舒适而熟悉的过程。
PHP 应用程序速度提升 4 倍
借助 FrankenPHP,Caddy 充当 PHP 应用程序服务器,其交付 PHP 页面的速度比 Swoole 或 RoadRunner 快 4 倍:无需 php-fpm (FastCGI)。
将您的 PHP 应用程序部署为单个静态二进制文件,而无需单独安装 PHP 和 php-fpm。Caddy 与 FrankenPHP 是高性能 PHP 应用程序所需的全部!
基准测试比较了使用 Octane 的工作模式的总响应时间。FrankenPHP 在服务器内进程中运行,因此在大多数情况下,它通常比 FPM/mod_php 更快。PHP 执行速度不会加快。
{
# Enable FrankenPHP
frankenphp
}
example.com {
# Serve PHP app from current directory
php_server
}
提供 PHP 应用程序就像这个 Caddyfile 一样简单。PHP 解释器完全嵌入在 Caddy 二进制文件中,您的应用程序文件将从当前工作目录提供。无需 php-fpm 或单独安装 PHP!
黄金标准 Web 服务器
Caddy 拥有市场上最强大的 TLS 堆栈。与 OpenSSL(Apache 和 NGINX)相比,它具有更强的内存安全保证,并且比任何其他服务器或实用程序具有更先进的证书自动化逻辑,Caddy 可以使您的网站在其他服务器...无法解决的问题中保持在线状态。
Caddy 是第一个完全自动化公共证书管理的服务器 - 因此我们在这方面的时间比任何人都长。Caddy 管理着超过 5000 万个证书,为其他服务器树立了黄金标准。
OCSP 状态装订拯救了局面
Caddy 会自动装订 OCSP 响应并缓存它们以应对中断。在 2018 年,由于关键的 OCSP 基础设施发生了长时间的中断,许多流行网站对主流浏览器的用户来说都宕机了。只有 Caddy 默认装订和缓存 OCSP 响应,因此所有 Caddy 站点都未受影响。
防范吊销
在 2020 年,大规模证书吊销事件导致许多系统管理员争先恐后地提前续订证书。Caddy 会自动续订被吊销的证书,所有 Caddy 站点均未受影响。(这发生在 ARI 存在之前。)
在审计期间屹立不倒
由于 Caddy 的安全默认设置和“全功能”方法,公司在重要审计前几个小时就在其站点前面部署了 Caddy,这可能会挽救他们的合规状态。
听取大家的评价
我们有偏见。但是 Caddy 因其易用性、安全默认设置、强大的功能集以及改变业务的成本降低而受到全球多样化用户群体的广泛依赖和赞誉。