侧边栏壁纸
博主头像
知与夜 博主等级

行动起来,活在当下

  • 累计撰写 24 篇文章
  • 累计创建 4 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

使用 acme.sh 自动申请并部署证书到雷池 WAF

夜莺
2025-07-31 / 0 评论 / 0 点赞 / 13 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于2025-07-31,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

使用 acme.sh 自动申请并部署证书到雷池 WAF

一、背景介绍

在自建服务过程中,我们经常需要为自己的域名配置 HTTPS 证书。虽然雷池(Safeline)WAF 提供了 Web 界面上传证书的方式,但手动更新过于繁琐。本文记录我如何通过 acme.sh​ 脚本,结合 DNS 验证和 Docker 热更新,实现证书自动申请和部署。

二、环境说明

系统版本:DSM 7.2.1-69057 Update 6

雷池环境:docker部署

三、具体步骤

  1. 安装acme.sh
git clone https://github.com/acmesh-official/acme.sh.git
cd acme.sh
./acme.sh --install -m 你的邮箱@example.com --force

  1. 在目录下创建sh文件内容如下:

    #!/bin/bash
    
    # ============ 配置部分 ============
    
    # 你的 Cloudflare API Token
    export CF_Token="替换为自己的token"
    
    # 主域名
    DOMAIN="替换为自己的域名"
    
    # 证书安装路径(雷池容器对应的宿主机路径)
    CERT_PATH="/volume1/docker/leichi-WAF/resources/nginx/certs" #默认的证书路径
    CERT_FILE="${CERT_PATH}/cert_1.crt"
    KEY_FILE="${CERT_PATH}/cert_1.key"
    
    # 日志路径(可选)
    LOG_FILE="/volume1/docker/acme-deploy.log"
    
    # ============ 证书申请 ============
    
    /root/.acme.sh/acme.sh --issue --dns dns_cf \
    -d "$DOMAIN" \
    -d "*.$DOMAIN" \
    --keylength ec-256 \
    --server letsencrypt >> "$LOG_FILE" 2>&1
    
    # ============ 安装部署证书 ============
    
    /root/.acme.sh/acme.sh --install-cert -d "$DOMAIN" \
    --ecc \
    --cert-file "$CERT_FILE" \
    --key-file "$KEY_FILE" \
    --reloadcmd "docker exec safeline-tengine nginx -s reload" >> "$LOG_FILE" 2>&1
    
    # ============ 记录成功信息 ============
    
    echo "[$(date '+%F %T')] ✅ 证书申请 & 部署完成,已尝试重载 nginx" >> "$LOG_FILE"
    
    
  2. 运行sh文件之后会看到证书路径的会更新就代表成功

    PixPin_2025-07-31_20-52-34

  3. 设置自动续期任务

    1. 创建一个up-acme.sh文件内容如下:

      /root/.acme.sh/acme.sh --cron --home /root/.acme.sh > /dev/null && \
      /root/.acme.sh/acme.sh --install-cert -d 替换为实际主域名 --ecc \              #替换实际主域名
      --cert-file /volume1/docker/leichi-WAF/resources/nginx/certs/cert_1.crt \   #替换为实际证书路径
      --key-file /volume1/docker/leichi-WAF/resources/nginx/certs/cert_1.key \    #替换为实际证书路径
      --reloadcmd "docker exec safeline-tengine nginx -s reload"
      
      

      ‍

    2. 打开 群晖后台 依次点击 【主菜单】-【控制面板】-【任务计划】

      1. PixPin_2025-07-31_20-57-45

      2. PixPin_2025-07-31_21-01-13

        1. 时间自定义
      3. PixPin_2025-07-31_20-58-46

      4. PixPin_2025-07-31_20-59-21

        1. 在自定义脚本输入以下代码

          1.  # sh 实际up-acme.sh文件所在位置
             sh /volume1/docker/leichi-WAF/up-acme.sh 
            

‍

0

评论区