V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
探索世界的好奇心万岁
goodryb
V2EX  ›  分享发现

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

  •  
  •   goodryb · 86 天前 · 546 次点击
    这是一个创建于 86 天前的主题,其中的信息可能已经有所发展或是发生改变。

    群晖使用了 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 证书名称

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

    目前尚无回复
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3964 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 09:54 · PVG 17:54 · LAX 02:54 · JFK 05:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.