網站都在
HTTPS
預設情況下,Caddy 會自動取得並更新所有網站的 TLS 憑證。
自訂網域的 HTTPS/TLS
幾乎每個白標 SaaS 的秘密武器都是 Caddy 原創的隨選 TLS 功能。輕鬆將您的 SaaS 業務擴大好幾個數量級!
動態提供憑證
透過隨選 TLS,只有 Caddy 會在 TLS 交握期間即時取得、更新和維護憑證。非常適合客戶擁有的網域。
大規模擴充您的 TLS
其他網路伺服器和腳本憑證工具會在數十萬個網站或數千個執行個體的情況下崩潰。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 提供服務,中間使用一個完全自動化、自我管理的 CA,該 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 和私人 CA 提供功能齊全的 PKI 套件。
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 不僅僅是一個網路伺服器。例如,這個設定就是取得和續約一組網域名稱的憑證所需要的全部。
可以撰寫額外的設定來連接憑證維護事件,然後可以用來與外部腳本和工具整合。
專家推薦
學術界和業界專家推薦 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:一個自動化憑證授權機構,用於加密整個網路。在 2019 年 ACM SIGSAC 電腦和通訊安全會議 (CCS '19) 的會議記錄中。美國紐約州紐約市計算機械協會,2473-2487。 https://doi.org/10.1145/3319535.3363192

「TLS 必須預設啟用 ... 而 Caddy 網路伺服器是一個良好且實用的範例。」
—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 編碼的網路伺服器。
虛擬檔案系統
從任何地方提供您的靜態網站:本機檔案系統、遠端雲端儲存空間、資料庫,甚至嵌入在伺服器二進位檔中!
範圍要求、Etag,以及更多功能
與許多專為臨時本機開發而設計的臨時檔案伺服器不同,Caddy 完全支援範圍要求、Etag,以及完整的生產功能組。
目錄檔案瀏覽器
如果要求目錄中沒有索引檔案,Caddy 可以顯示一個優雅的檔案瀏覽器,其中包含麵包屑導覽、檔案大小視覺化、檔案類型圖示,以及網格檢視。
example.com
root * /var/www
# Serve precompressed files if present
file_server /downloads/* {
precompressed gzip zstd br
}
# 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": "更聰明地工作,而不是更努力地工作。" }' $ curl localhost:2019/config/ | jq
JSON 設定 API
Caddy 的原生設定格式是 JSON,為您提供令人難以置信的強大功能和彈性,以進行自動化、大規模的部署。
透過提供 ACID 保證的直覺式、可編程 REST API進行動態設定變更。它也安全地限定範圍,表示 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
設定檔轉接器
用任何東西為 Caddy 賦能,甚至是 NGINX 設定檔!
透過對 設定檔轉換 的一級支援,你可以使用你最喜歡的格式來設定你的網路伺服器: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。只要使用帶有 FrankenPHP 的 Caddy,就能滿足高效能 PHP 應用程式的需求!
基準測試使用工作者模式與 Octane 比較總回應時間。FrankenPHP 與伺服器一起執行,因此在大多數情況下通常比 FPM/mod_php 快。PHP 執行沒有加速。
{
# Enable FrankenPHP
frankenphp
order php_server before file_server
}
example.com {
# Serve PHP app from current directory
php_server
}
使用這個 Caddyfile 來服務你的 PHP 應用程式非常簡單。PHP 解譯器完全嵌入在 Caddy 二進位檔中,你的應用程式檔案將從目前的作業目錄中提供服務。不需要 php-fpm 或分開安裝 PHP!
網站伺服器的 黃金標準
Caddy 擁有市場上最穩健的 TLS 堆疊。Caddy 的記憶體安全保證比 OpenSSL(Apache 和 NGINX)更強,憑證自動化邏輯也比任何其他伺服器或工具程式更進階,讓你的網站可以在其他伺服器... 無法運作時保持上線。
Caddy 是第一個完全自動化公用憑證管理的伺服器,因此我們比任何人都更早開始執行這項工作。Caddy 管理超過 5000 萬張憑證,已為其他伺服器設定了黃金標準。
OCSP 主釘救了一命
Caddy 自動釘選 OCSP 回應並快取它們以應對中斷。2018 年,許多熱門網站對主流瀏覽器使用者當機,因為重要的 OCSP 基礎架構發生長時間中斷。只有 Caddy 預設釘選並快取 OCSP 回應,因此所有 Caddy 網站不受影響。
防止吊銷
2020 年,一場大規模憑證吊銷事件讓許多系統管理員爭先恐後地提前更新憑證。Caddy 自動更新被吊銷的憑證,所有 Caddy 網站不受影響。(這是在 ARI 存在之前。)
在稽核期間屹立不搖
公司在重要稽核前幾個小時將 Caddy 部署在其網站之前,因為 Caddy 的安全預設值和「包含電池」的方法,可能會挽救其合規狀態。
聽聽大家的說法
我們有偏見。但 Caddy 因其易用性、安全預設值、強大的功能組和改變業務的成本降低而受到全球多元使用者的廣泛依賴和讚譽。