goodryb

群晖通过 docker 更新和部署 letsencrypt 证书

  •  
  •   goodryb · May 23, 2022 · 3254 views
    This topic created in 1454 days ago, the information mentioned may be changed or developed.

    群晖使用了 letsencrypt 的免费证书,3 个月要更新一次,之前是在 Mac 上更好证书,手动通过群晖 web 页面进行替换。

    本着能不动手就自动化的目标,查找了一些资料,加上实际测试,现在已经能通过 docker 来申请并且在群晖上自动部署证书。

    前置条件

    1. 准备好域名托管站点的 id 和 key ,我用的阿里云
    2. 准备好群晖的账户,建议不要用默认管理员,新建一个账户,加入管理员组,毕竟这个只在本地使用。
    3. 群晖安装 docker 组件,下载好对应的 docker 镜像:neilpang/acme.sh
    4. 准备一个目录,映射到容器中保存证书文件,这里是:/volume2/docker/acme

    更新脚本如下

    #!/bin/bash
    export DOMAIN='abc.com'
    
    docker run --rm \
    -v "/volume2/docker/acme":/acme.sh \
    -e Ali_Key="*" \
    -e Ali_Secret="*" \
    --net=host \
    neilpang/acme.sh \
    --issue --dns dns_ali --dnssleep 60 -d "${DOMAIN}" -d "*.${DOMAIN}" --server letsencrypt
    
    sleep 5
    
    docker run --rm -v "/volume2/docker/acme":/acme.sh -e SYNO_Username="*" -e SYNO_Password="*" -e SYNO_Certificate="caupdate"  -e SYNO_Scheme="http" -e SYNO_Create=1 --net=host neilpang/acme.sh --deploy -d "${DOMAIN}" -d "*.${DOMAIN}" --deploy-hook synology_dsm
    
    

    其中

    1. DOMAIN 按照实际来写
    2. Ali_Key 、Ali_Secret 按照实际来写,用法和 acme.sh 参数是一样的
    3. 群晖部分 SYNO_Username 用户名、SYNO_Password 密码、SYNO_Certificate 证书名称

    其他部分保持默认,保存后添加脚本执行权限,本地跑一遍测试下,没问题就可以添加到计划任务,定期运行。

    2 replies    2023-11-24 18:22:41 +08:00
    4363fsdtrt
        1
    4363fsdtrt  
       Nov 11, 2023
    非常有用感谢,已成功运行
    Subdue
        2
    Subdue  
       Nov 24, 2023   ❤️ 1
    最新版本的 acme 有点点毛病,我的群辉 918 用不了,我倒回旧版 acme 镜像,重新做了调整



    #!/bin/bash





    export ZEROSSL_EMAIL="**********************"


    export DOMAIN="**********************"


    export SYNO_USERNAME="**********************"
    export SYNO_PASSWORD="**********************"


    export DNS="dns_cf"
    export CF_KEY="**********************"
    export CF_EMAIL="**********************"








    echo "${SYNO_PASSWORD}" | sudo -S docker run --rm -v "/volume1/docker/acme":"/acme.sh" --net=host neilpang/acme.sh:3.0.6 --register-account -m "${ZEROSSL_EMAIL}" --server zerossl

    sleep 30

    echo "${SYNO_PASSWORD}" | sudo -S docker run --rm -v "/volume1/docker/acme":"/acme.sh" -e CF_Key="${CF_KEY}" -e CF_Email="${CF_EMAIL}" --net=host neilpang/acme.sh:3.0.6 --issue --dns "${DNS}" --dnssleep 60 -d "${DOMAIN}" -d "*.${DOMAIN}" --keylength 4096 --force

    sleep 600

    echo "${SYNO_PASSWORD}" | sudo -S docker run --rm -v "/volume1/docker/acme":"/acme.sh" -e SYNO_Hostname="${DOMAIN}" -e SYNO_Port="5001" -e SYNO_Username="${SYNO_USERNAME}" -e SYNO_Password="${SYNO_PASSWORD}" -e SYNO_Scheme="https" -e SYNO_Certificate="caupdate" -e SYNO_Create=1 --net=host neilpang/acme.sh:3.0.6 --deploy -d "${DOMAIN}" -d "*.${DOMAIN}" --deploy-hook synology_dsm --insecure








    exit 0
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2822 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 10:50 · PVG 18:50 · LAX 03:50 · JFK 06:50
    ♥ Do have faith in what you're doing.