Caddy是一款现代化的开源Web服务器,以其自动HTTPS和零配置证书管理功能脱颖而出。通过集成Let's Encrypt服务,Caddy实现了从证书申请到续期的全自动化流程,极大简化了HTTPS部署的复杂性。
核心优势
自动证书管理
Caddy内置ACME协议客户端,可自动向Let's Encrypt发起证书申请。首次启动时,服务器会检测域名配置并触发证书颁发流程,证书默认存储在/etc/ssl/caddy目录下。该过程无需人工干预,证书有效期到期前30天自动触发续期任务。
HTTP到HTTPS自动重定向
通过tls指令配置的站点默认启用80端口到443端口的强制重定向。例如在Caddyfile中配置:
caddyfile
example.com { | |
tls your@email.com | |
root * /var/www/html | |
file_server | |
} |
访问http://example.com时,Caddy会自动跳转到https://example.com。
本地HTTPS支持
对于非公开域名(如本地开发环境),Caddy会生成自签名证书并通过本地CA(Certificate Authority)进行签名。首次访问时会提示用户安装根证书,之后所有HTTPS连接均由本地CA验证,无需暴露到公网。
部署流程
安装Caddy
在Linux系统上通过包管理器安装:
bash
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg | |
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list | |
sudo apt update && sudo apt install caddy |
配置Caddyfile
创建配置文件/etc/caddy/Caddyfile并写入域名配置:
caddyfile
yourdomain.com { | |
root * /var/www/yourdomain | |
file_server | |
encode gzip | |
} |
启动服务
bash
sudo systemctl enable --now caddy |
服务启动后,Caddy会自动解析域名并申请证书。
注意事项
- 端口要求:需确保80和443端口未被占用,否则需调整防火墙规则或使用其他端口。
- 域名解析:DNS记录必须指向服务器IP,否则ACME验证会失败。
- 证书存储:证书文件存储在Caddy数据目录中,需确保目录权限正确。
通过Caddy的自动HTTPS功能,开发者可在Linux环境下实现真正的零配置证书管理,显著降低HTTPS部署门槛。