为什么

Caddy 内置了 Automatic HTTPS 的功能。但是默认的 CA (Let's Encrypt) 的 CRL 链接近期出现了访问障碍1.

试图切换到 Google Trust Services 的过程中发现 Caddy 的 ACME 请求对 HTTP(S) PROXY 支持并不完善2.

所以需要把这两部分分开,使用 acme.sh 作为 ACME 客户端,Caddy 不开启 Automatic HTTPS.

怎么做

  1. acme.sh 的 wiki 中对如何从 Google Trust Service 获取证书有介绍。

  2. 从 acme.sh 导出 SSL 证书.

acme.sh i --install-cert --domain domain.tld --key-file key.pem --fullchain-file fullchain.pem --reloadcmd <command>

这里需要使用 --fullchain-file 而不是 --cert-file,不然你会看到诸如 x509: certificate signed by unknown authority 这样的错。

  1. 在 Caddyfile 中配置 SSL 证书
{
    tls <fullchain.pem> <key.pem>
}