type
status
date
slug
summary
tags
category
icon
password
1 利用acme.sh实现证书申请和续签
1.1 使用 docker 安装 acme.sh
创建目录和文件:
acme.sh/dataaccount.conf
- 此处使用的是cloudflare进行域名托管
编写docker-compose.yaml文件
运行即可
1.2 申请泛域名证书
ssh切换root账户,输入
或者
在网页双击已运行的容器,切换到终端机页面,点击通过命令启动,输入 sh 后点确定(可选)
输入以下命令实现容器自动更新:
然后输入以下命令申请证书:(以domain.com为例)
- dns_cf:表示此处使用的是cloudflare进行域名托管。dns_dp 代表腾讯云 DNSPod。 dns_ali 代表阿里云。更多可参考官方描述。
- 申请完成后可自动续期(command: daemon)
2 编写脚本定时替换系统证书文件
2.1 手动导入一遍证书,让群晖自动生成存储地址
已导入过的请跳过
2.2 找到群晖自动生成存储证书的地址
通过研究发现,DSM将所有证书信息存放在了 /usr/syno/etc/certificate/_archive 目录下,且 /usr/syno/etc/certificate/_archive/DEFAULT 文件中记录了当前的默认证书(通常用户自设为购买的证书)
先查询默认证书的名字
注意一直要root账户运行
2.3 编写脚本
在自己找得到的位置编写 update_certificate.sh
- 主要目的就是把最新的证书覆盖到群晖相应文件夹中并重启nginx
- 默认是ecc加密的证书,安全,计算量小,所以文件夹后缀有"_ecc"
3 在群晖中新建计划任务
控制面板 -> 计划任务 ->新增
- 用户账号:root
- 每月1号执行一次
- 在用户自定义脚本下方填入
- 作者:墨羽
- 链接:https://blog.pigcyan.com/article/DSM-ssl
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。