是时候抛弃宝塔了孩子!
更新系统并安装Caddy
首先,确保你的系统是最新的
apt update && apt upgrade -y
安装 Caddy 的官方仓库
Caddy 官方提供了一个仓库,方便安装和更新。你需要先安装 Caddy 的 GPG 密钥和仓库配置
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https socat
curl -fsSL https://getcaddy.com | sudo bash -s personal
echo "deb [arch=amd64] https://apt.caddyserver.com/ caddy main" | sudo tee /etc/apt/sources.list.d/caddy.list
sudo apt update
sudo apt install caddy
安装acme.sh
接下来,安装acme.sh,这是一个轻量级的命令行工具,用于从Let’s Encrypt获取SSL证书:
curl https://get.acme.sh | sh
申请证书
暂时停止 Caddy
sudo systemctl stop caddy
使用 acme.sh 申请证书
由于是使用了ipv6 only的服务器,需要在Cloudflare中将自己的IPV6地址添加DNS解析里的AAAA记录中
设置电子邮件地址
acme.sh --register-account -m [email protected]
使用 acme.sh
的 --dns
模式来申请证书
acme.sh
支持多种 DNS 提供商的 API。如果你的 DNS 提供商在 acme.sh
支持列表中,你可以使用 API 来自动化 DNS-01 验证。如果不在支持列表中,你也可以手动添加 TXT 记录。
获取 Cloudflare API 凭证
你需要从 Cloudflare 获取 API 密钥,通常包括 API 令牌或全局 API 密钥。建议使用 API 令牌,因为它可以提供更好的安全性和权限控制。
获取 API 令牌的步骤:
- 登录到 Cloudflare 账户。
- 点击右上角的个人头像,选择 “我的个人资料”。
- 选择 “API 令牌” 标签页。
- 点击 “创建令牌” 按钮。
- 按照向导创建一个具有
Zone.Zone
和Zone.DNS
权限的 API 令牌,或者选择 “使用现有模板” 并选择 “DNS 编辑” 模板。 - 创建完成后,记下 API 令牌。注意:你只能在创建时看到一次,请妥善保存。
配置 acme.sh
使用 Cloudflare API
设置环境变量来指定你的 Cloudflare API 令牌。假设你的 API 令牌是 your_api_token
:
export CF_Token="your_api_token"
你可以通过将环境变量添加到你的 shell 配置文件(如 .bashrc
或 .zshrc
)中,使其在每次登录时自动加载:
echo 'export CF_Token="your_api_token"' >> ~/.bashrc
source ~/.bashrc
申请证书
acme.sh --issue --dns dns_cf -d yourdomain.com
acme.sh
将会自动在 Cloudflare 上创建所需的 TXT 记录来完成 DNS-01 验证。
申请完成后,证书将存储在 ~/.acme.sh/yourdomain.com/
目录中。
配置Caddy
编辑Caddy配置文件(通常位于 /etc/caddy/Caddyfile
),添加以下配置以反向代理Alist并使用申请的证书:
yourdomin.com {
reverse_proxy 127.0.0.1:5244
}
启动Caddy
sudo systemctl start caddy
确认ACME自动更新配置
acme.sh
通常会自动设置一个 cron
任务来处理证书的续期。如果你想手动确认或设置 cron
任务,可以执行以下步骤:
1.查看 acme.sh
是否已经设置了自动更新的 cron
任务:
crontab -l | grep acme.sh
2.如果你发现没有自动更新任务,或者想手动设置,可以使用以下步骤:
crontab -e
0 2 * * * /root/.acme.sh/acme.sh --cron --home "/root/.acme.sh" > /dev/null
这会在每天凌晨 2 点运行 acme.sh
来检查和更新证书。
博主666,爱了爱了ヾ(≧∇≦*)ゝ