使用 Caddy 一键脚本安装,再使用 CloudFlare 作为前置代理,会出现开机启动错误。原因是 Caddy 无法获取 Let’s Encrypt 证书。解决方法是安装**tls.dns.cloudflare**
插件。要使用插件需要设置 CloudFlare 变量,有三种方案:
注意:VPS 使用的操作系统是 Debian 10,Caddy 配置中 tls [email protected]
,改成 tls { dns cloudflare }
设置临时变量
设置 CloudFlare 临时变量,关闭 SSH 自动清除。
export CLOUDFLARE_EMAIL="CloudFlare 邮箱" ``export CLOUDFLARE_API_KEY="CloudFlare 全局密钥"
查询设置的 CloudFlare 环境变量
echo $CLOUDFLARE_EMAIL
echo $CLOUDFLARE_API_KEY
正常后重启 Caddy 。
设置永久环境变量
VPS 重启需要 SSH 登陆,执行一些命令。
设置全局变量
执行sudo vim /etc/profile
,再适当的位置添加 CloudFlare 邮箱和密钥。保存,执行 source /etc/profile
,使变量生效,重启 Caddy 。
推荐设置
在 Root 模式下,执行vim .bashrc
,输入 source /etc/profile
和 Caddy 重启命令,这样使用sudo su
切换 Root 自动执行命令。
使用脚本,开机自动执行命令(推荐)
编写脚本(root模式下)
vim caddy.sh
,内容如下
#!/bin/bash
export CLOUDFLARE_EMAIL="[email protected]"
export CLOUDFLARE_API_KEY="xxxxxx"
/etc/init.d/caddy restart
介绍: CloudFlare 邮箱,CloudFlare 全局密钥,Caddy 重启命令
执行chmod +x caddy.sh
,赋予执行权限。
开机自动执行命令
Root 模式下 crontab -e
,新建定时任务。
@reboot sleep 10 && bash /root/caddy.sh
解释: 开机重启 10 秒,执行 /root/caddy.sh
下的命令。
补充:
可以使用 CloudFlare 的加密证书,格式改为如下:
域名:443 {
tls 公钥证书完整路径 私钥证书完整路径
}