高子 发表于 2024-7-12 14:56

阿里域名证书(通过群晖)自动续签 acme.sh【教程】【群晖折腾记】

本帖最后由 高子 于 2024-10-27 09:36 编辑

参考 张大妈 上 乖缪 大佬 的 教程,张大妈链接不让放,贴个其它的网址:https://t.cj.sina.com.cn/article ... p=no&isfromsina=no&

感谢前人大佬们的贡献,献丑,再造个轮子,以作备用,至此,群晖上暂时用到的东西,都已经折腾完了。

0、File Station里docker目录下新建“acme.sh”文件夹


1、Container Manager注册表搜索acme,第一个星最多的,点 下载 应用

下载好的映像上右击运行,名字改成acme

存储空间设置 选择 第0步 新增的文件夹位置 /docker/acme.sh旁边填:/acme.sh

网络选host,执行命令填:daemon 下一步,运行即可。


2、将以下代码保存为txt文档,改为acme.sh 文件(注意电脑上勾选“显示文件扩展名”,将".txt"改为".sh"),上传到 /docker/acme.sh 目录下
#你的域名
DOMAIN='你的域名'
#证书供应商
CERT_SERVER='letsencrypt'
#DNS供应商 可选 dns_dp(腾讯云) dns_ali(阿里云)dns_cf其他可查https://github.com/acmesh-official/acme.sh/wiki/dnsapi
DNS="dns_ali"
#群晖账号密码
SYNO_Username='群晖账号'
SYNO_Password='群晖密码'
#如果开启了双重验证请在浏览器登录时选中保存此设备,然后从COOKIE中获取did cookie
SYNO_Device_Name="CertRenewal"
SYNO_DID='通过浏览器获取的did数值'
#以下群晖配置非必要不要更改
SYNO_Hostname="localhost" # Specify if not using on localhost
SYNO_Scheme="http"
SYNO_Port="5000"
#要添加的证书的名字,空字符串("")的话就是替代默认证书,一般建议使用空字符串,除非你有多个证书
SYNO_Certificate=''

#以下三选一
#DNSPOD.CN 腾讯云
DP_Id=''
DP_Key=''
#阿里云
Ali_Key='阿里云的key'
Ali_Secret='阿里云的密钥'
#CF
CF_Key=''
CF_Email=''


case $DNS in
    "dns_dp")
    a="DP_Id=${DP_Id}"&&b="DP_Key=${DP_Key}"
    ;;
    "dns_ali")
    a="Ali_Key=${Ali_Key}"&&b="Ali_Secret=${Ali_Secret}"
    ;;
    "dns_cf")
    a="CF_Key=${CF_Key}"&&b="CF_Email=${CF_Email}"
    ;;
esac
SYNOUsername="SYNO_Username=${SYNO_Username}"
SYNOPassword="SYNO_Password=${SYNO_Password}"
SYNODeviceID="SYNO_Device_ID=${SYNO_DID}"
SYNOHostname="SYNO_Hostname=${SYNO_Hostname}"
SYNOScheme="SYNO_Scheme=${SYNO_Scheme}"
SYNOPort="SYNO_Port=${SYNO_Port}"
SYNOCertificate="SYNO_Certificate=${SYNO_Certificate}"
SYNODID="SYNO_DID=${SYNO_DID}"
SYNODeviceName="SYNO_Device_Name=${SYNO_Device_Name}"



docker exec -e ${a} -e ${b} acme acme.sh --log --server "${CERT_SERVER}" --issue -d "${DOMAIN}" -d "*.${DOMAIN}" --dns "${DNS}" >> /volume1/docker/acme.sh/log.txt 2>&1
docker exec -e ${SYNOUsername} -e ${SYNOPassword} -e ${SYNODeviceID} -e ${SYNOHostname} -e ${SYNOScheme} -e ${SYNOPort} -e ${SYNOCertificate} -e ${SYNODID} -e ${SYNODeviceName} acme acme.sh --issue -d "${DOMAIN}" -d "*.${DOMAIN}" --dns "${DNS}" --deploy --deploy-hook synology_dsm>> /volume1/docker/acme.sh/log.txt 2>&1

在群晖上用文本编辑器打开

对应的内容修改为你的信息:你的域名、DNS供应商、群晖账号、密码、(did值、)阿里云的key、密钥。其它不需要动。

注意,红框这里跟你第1步 新建的 container 名称对应,蓝框这里的位置跟你第0步 新建的acme.sh文件夹绝对位置对应



如群晖开启了双重验证,需要先获取did值,保持DSM网页未登录状态,登录时勾选“在此设备上不再询问”


键盘上按F12,在图中对应位置,获得did值,复制,填入上面acme.sh文件中对应位置“SYNO_DID='通过浏览器获取的did数值'”,保存即可。



3、在控制面板 任务计划 新增 计划的任务 用户定义的脚本

名称自定义,用户账号务必选 root

用户定义的脚本填入以下代码
bash /volume1/docker/acme.sh/acme.sh >> /volume1/docker/acme.sh/log.txt 2>&1
注意,这里的volume1要根据自己的实际情况填写,填写acme.sh文件夹的绝对位置。感谢 20L 提醒。


计划这里选择 每月重复


运行一下,查看运行结果,不报错即可


此时可以看到 /docker/acme.sh 目录下多了一个 log.txt 的文档,查看一下,末尾是“Success”即代表成功



再到 控制面板 安全性 证书 这里 将 刚生成的ECC 这个证书 设为默认



完了之后,再用浏览器打开域名,可以看到证书信息已经更新了。


对比下原始的证书信息


更多折腾内容,请看这里https://www.chiphell.com/search. ... E%E8%AE%B0%E3%80%91

highchh 发表于 2024-7-12 14:58

不用阿里的证书,用acme脚本来自动更新Let’s Encrypt的证书。

禁止梭哈 发表于 2024-7-12 15:16

mark,同样的问题

iori9051 发表于 2024-7-12 15:26

docker里部署一个acme.sh脚本。网上有别人写好的脚本,可以定期自动续签,然后自动部署到群晖,我用了半年暂时没遇到问题。

nn1122 发表于 2024-7-12 15:26

你不要怪阿里云,目前国内外所有证书机构免费证书都只有三个月,当然可以付费买,便宜的比如西部数码才几十块一年

jop 发表于 2024-7-12 16:39

freessl.cn里直接acme。无限自动续签

apple524 发表于 2024-7-12 16:42

我是在路由器上装了一个lucky
端口转发,反代,数字签名都带了,还蛮方便的
https://lucky666.cn/

mayi 发表于 2024-7-13 09:43

docker个lucky啊,傻瓜式操作

SeAstW 发表于 2024-7-13 10:00

nn1122 发表于 2024-7-12 15:26
你不要怪阿里云,目前国内外所有证书机构免费证书都只有三个月,当然可以付费买,便宜的比如西部数码才几十 ...

[困惑]百度现在还有一年免费的,但是还能提供多久那就不知道了。https://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif

nn1122 发表于 2024-7-13 11:09

SeAstW 发表于 2024-7-13 10:00
百度现在还有一年免费的,但是还能提供多久那就不知道了。

你的信息已经滞后了,前几天百度刚改为3个月[偷笑]

SeAstW 发表于 2024-7-13 14:05

nn1122 发表于 2024-7-13 11:09
你的信息已经滞后了,前几天百度刚改为3个月

[震惊]没吧,我就是前几天才搞的。刚去看了一下,trustasia的dv证书还能申请一年免费的啊https://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif

幽缭 发表于 2024-7-13 15:42

docker装nginx proxy manager,配置证书自动续签

Evalyn 发表于 2024-7-13 16:07

ACME自带群晖deploy hook,安逸的很,用什么阿里云

nn1122 发表于 2024-7-13 18:52

SeAstW 发表于 2024-7-13 14:05
没吧,我就是前几天才搞的。刚去看了一下,trustasia的dv证书还能申请一年免费的啊 ...

看了下公告,是8月1日,不好意思,但马上也就半月的时间了
https://cloud.baidu.com/doc/CAS/s/7ly6pin7e

高子 发表于 2024-7-14 11:00

禁止梭哈 发表于 2024-7-12 15:16
mark,同样的问题

已更新教程,供参考。

alsa 发表于 2024-7-14 12:17

群晖页面登陆不支持https吗?

高子 发表于 2024-7-14 12:27

alsa 发表于 2024-7-14 12:17
群晖页面登陆不支持https吗?

支持的   

上面的设置,不影响群晖用域名https方式访问

alsa 发表于 2024-7-14 13:02

高子
支持的   

上面的设置,不影响群晖用域名https方式访问

我是说acme.sh里面配置https登录好像不行。

高子 发表于 2024-7-14 13:04

alsa 发表于 2024-7-14 13:02
我是说acme.sh里面配置https登录好像不行。

这里面,我没动,用网页登录,https没问题

lilho_e 发表于 2024-7-14 15:01

感谢楼主分享。
提醒一下,使用多个硬盘的,注意路径不是volume1

高子 发表于 2024-7-14 15:16

lilho_e 发表于 2024-7-14 15:01
感谢楼主分享。
提醒一下,使用多个硬盘的,注意路径不是volume1

感谢提醒,已经更新

RyuHwang 发表于 2024-7-15 10:59

可别费事了,直接装个Lucky,直接自动续期[偷笑]

高子 发表于 2024-7-15 12:12

RyuHwang 发表于 2024-7-15 10:59
可别费事了,直接装个Lucky,直接自动续期

看了下,图形化界面,确实对小白用户更友好,它的证书续期的模块用的应该也是acme的,相当于是多个功能的集成。我其它的项目在软路由上搞好了,就不折腾了。感谢推荐。

ericone 发表于 2024-7-15 12:19

曾经也是用楼主的方法搞的证书,自从有了LUCKY后。。。

apple524 发表于 2024-7-15 16:26

ericone 发表于 2024-7-15 12:19
曾经也是用楼主的方法搞的证书,自从有了LUCKY后。。。

同意,LUCKY确实傻瓜化,而且反代,端口映射等一众功能都全了

yuhbbd 发表于 2024-7-15 16:43

直接LUCKY全部搞定,少走很多很多弯路

高子 发表于 2024-7-15 16:55

apple524 发表于 2024-7-15 16:26
同意,LUCKY确实傻瓜化,而且反代,端口映射等一众功能都全了

请教一下:设置反代是不是要求80端口没被封?

apple524 发表于 2024-7-15 17:01

本帖最后由 apple524 于 2024-7-15 17:09 编辑

高子 发表于 2024-7-15 16:55
请教一下:设置反代是不是要求80端口没被封?

不需要,目前80 443 家宽都是被封的
反代的意思就是 我对外开一个端口 譬如6666端口
家里的其他设备可以用
nas.abc.com:666
photo.abc.com:6666
.....
这样来实现二级子域名的访问
再加上lucky可以直签证书,所以部署在路由器上反代,证书,还有ddns一个程序搞定了,实在不错。
当然如果你没公网IP,还有实现内网穿透等服务

高子 发表于 2024-7-15 17:09

本帖最后由 高子 于 2024-7-15 17:14 编辑

apple524 发表于 2024-7-15 17:01
不需要,目前80 443 家宽都是被封的
反代的意思就是 我对外开一个端口 譬如6666端口
家里的其他设备可以 ...

对,我也觉得这个部署的路由器上更合适一点。看了下iStoteOS商店里有这个服务APP

alwayskid 发表于 2024-7-15 17:15

在VPS上用acme申请泛域名证书,每日定时同步一次[偷笑]
页: [1] 2
查看完整版本: 阿里域名证书(通过群晖)自动续签 acme.sh【教程】【群晖折腾记】