Caddy TLS 配置生成器
生成指定 TLS 协议和套件、带 HSTS 的 Caddyfile,也可以改用自己购买的证书代替自动 HTTPS。
浏览器本地运行 你输入的内容只在本地用 JavaScript 处理,不会上传到 ssl.sh。
TLS 配置生成器的 Caddy 预设给 Caddyfile 补上明确的 TLS 设置。Caddy 本身已经做了大部分工作:自动申请证书、自动跳转 HTTPS、默认配置也很安全。生成器补充了明确的协议和套件设置、HSTS 头,以及使用自有证书文件的写法。
示例:中级档
example.com {
tls {
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
}
header Strict-Transport-Security "max-age=63072000; includeSubDomains"
root * /var/www/example.com
file_server
}
只开 TLS 1.3 时写 protocols tls1.3,并去掉 ciphers 行:Caddy 用 Go 编写,Go 里 TLS 1.3 的套件不能配置。
版本说明
- 这个写法需要 Caddy 2。
- Caddy 2.10+ 会和支持的客户端(新版 Chrome、Firefox、Safari)协商 X25519MLKEM768,不需要任何设置。
- Caddy 不提供 TLS 1.0/1.1,“兼容旧版”档会保留 TLS 1.2 并加入 CBC 套件。
校验并重载
caddy validate --config /etc/caddy/Caddyfile
caddy reload --config /etc/caddy/Caddyfile
用 SSL 检查确认结果,它会显示协商出的密钥交换组。
常见问题
一定要写 tls 块吗?
一般不用,Caddy 的默认值已经接近中级档。需要只开 TLS 1.3、合规要求固定套件列表、或使用自己的证书文件时再加。
怎么用自己买的证书?
在站点块里写 tls /path/fullchain.pem /path/privkey.pem。这样 Caddy 会使用这张证书,不再为这个站点通过 ACME 申请,续期要你自己负责。
国内服务器上自动 HTTPS 能用吗?
能,但要满足 ACME 验证条件:域名解析到这台服务器,80 或 443 端口能从公网访问。国内服务器用 80/443 对外提供网站服务通常还需要完成 ICP 备案。