TLS 配置生成

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 备案。

资料来源

  1. Caddy tls 指令
  2. Mozilla Server Side TLS