作为活菩萨的cloudflare由于提供优质免费的CDN等服务口碑一直非常不错,而caddy由于支持最新的SSL、轻量化和自动更新证书也是获得不少青睐,至少apache落后太多,但是想将二者结合起来,也就是用CF的DNS和SSL证书并且使用caddy来host则是需要设置一下的。(虽然不难而且不新但不能不会)
首先是CF方面的设置: 在cloudflare的域名首页位置右侧,点击“获取您的API令牌”,创建一个此域名的token,接下来点击“Create Token”并选择“Create Custom Token”。命名你的 Token,并添加以下权限:
Zone > Zone > Read
Zone > DNS > Edit
创建完成后,复制生成的 API Token(这个字符串必须保存好,否则无法再次显示)。
在cloudflare的DNS解析页面,确保开启proxy的小云朵,并且在SSL页面将将加密模式从“灵活”(Flexible)更改为“完全”(Full)或“完全严格”(Full (strict))。建议选择“完全严格”(Full (strict))否则会出现“重定向过多”的错误页面
在caddyfile里面这样写:
example.com {
root * /path/to/your/static/files
file_server
tls {
dns cloudflare {env.CLOUDFLARE_API_TOKEN}
}
}
这里CLOUDFLARE_API_TOKEN用你的token替代。这一设置文件只适于静态网站,如果后后台运行程序的要用reverse_proxy 127.0.0.1:YOUR_SERVICE_PORT 这一语句
重启服务器,测试一下,查看SSL标记,如下显示则证实已成功
