IPV6only服务器使用Caddy反代并使用ACME.sh申请自签证书

是时候抛弃宝塔了孩子!

更新系统并安装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 令牌的步骤:

    1. 登录到 Cloudflare 账户。
    2. 点击右上角的个人头像,选择 “我的个人资料”
    3. 选择 “API 令牌” 标签页。
    4. 点击 “创建令牌” 按钮。
    5. 按照向导创建一个具有 Zone.ZoneZone.DNS 权限的 API 令牌,或者选择 “使用现有模板” 并选择 “DNS 编辑” 模板。
    6. 创建完成后,记下 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 来检查和更新证书。

        评论

        1. 春日野穹
          10 月前
          2024-8-10 11:34:33

          博主666,爱了爱了ヾ(≧∇≦*)ゝ

        发送评论 编辑评论

        
        				
        |´・ω・)ノ
        ヾ(≧∇≦*)ゝ
        (☆ω☆)
        (╯‵□′)╯︵┴─┴
         ̄﹃ ̄
        (/ω\)
        ∠( ᐛ 」∠)_
        (๑•̀ㅁ•́ฅ)
        →_→
        ୧(๑•̀⌄•́๑)૭
        ٩(ˊᗜˋ*)و
        (ノ°ο°)ノ
        (´இ皿இ`)
        ⌇●﹏●⌇
        (ฅ´ω`ฅ)
        (╯°A°)╯︵○○○
        φ( ̄∇ ̄o)
        ヾ(´・ ・`。)ノ"
        ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
        (ó﹏ò。)
        Σ(っ °Д °;)っ
        ( ,,´・ω・)ノ"(´っω・`。)
        ╮(╯▽╰)╭
        o(*////▽////*)q
        >﹏<
        ( ๑´•ω•) "(ㆆᴗㆆ)
        😂
        😀
        😅
        😊
        🙂
        🙃
        😌
        😍
        😘
        😜
        😝
        😏
        😒
        🙄
        😳
        😡
        😔
        😫
        😱
        😭
        💩
        👻
        🙌
        🖕
        👍
        👫
        👬
        👭
        🌚
        🌝
        🙈
        💊
        😶
        🙏
        🍦
        🍉
        😣
        Source: github.com/k4yt3x/flowerhd
        颜文字
        Emoji
        小恐龙
        花!
        上一篇
        下一篇