找回密码
 加入我们
搜索
      
查看: 13669|回复: 53

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

[复制链接]
发表于 2024-7-12 14:56 | 显示全部楼层 |阅读模式
本帖最后由 高子 于 2024-10-27 09:36 编辑

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

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

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

1、Container Manager注册表搜索acme,第一个星最多的,点 下载 应用
01.png
下载好的映像上右击运行,名字改成acme
02.png
存储空间设置 选择 第0步 新增的文件夹位置 /docker/acme.sh  旁边填:  /acme.sh
03.png
网络选host,执行命令填:daemon 下一步,运行即可。
03-2.png

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

  19. #以下三选一
  20. #DNSPOD.CN 腾讯云
  21. DP_Id=''
  22. DP_Key=''
  23. #阿里云
  24. Ali_Key='阿里云的key'
  25. Ali_Secret='阿里云的密钥'
  26. #CF
  27. CF_Key=''
  28. CF_Email=''


  29. case $DNS in
  30.     "dns_dp")
  31.     a="DP_Id=${DP_Id}"&&b="DP_Key=${DP_Key}"
  32.     ;;
  33.     "dns_ali")
  34.     a="Ali_Key=${Ali_Key}"&&b="Ali_Secret=${Ali_Secret}"
  35.     ;;
  36.     "dns_cf")
  37.     a="CF_Key=${CF_Key}"&&b="CF_Email=${CF_Email}"
  38.     ;;
  39. esac
  40. SYNOUsername="SYNO_Username=${SYNO_Username}"
  41. SYNOPassword="SYNO_Password=${SYNO_Password}"
  42. SYNODeviceID="SYNO_Device_ID=${SYNO_DID}"
  43. SYNOHostname="SYNO_Hostname=${SYNO_Hostname}"
  44. SYNOScheme="SYNO_Scheme=${SYNO_Scheme}"
  45. SYNOPort="SYNO_Port=${SYNO_Port}"
  46. SYNOCertificate="SYNO_Certificate=${SYNO_Certificate}"
  47. SYNODID="SYNO_DID=${SYNO_DID}"
  48. SYNODeviceName="SYNO_Device_Name=${SYNO_Device_Name}"



  49. 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
  50. 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
复制代码


在群晖上用文本编辑器打开
04.png
对应的内容修改为你的信息:你的域名、DNS供应商、群晖账号、密码、(did值、)阿里云的key、密钥。其它不需要动。
05.png
注意,红框这里跟你第1步 新建的 container 名称对应,蓝框这里的位置跟你第0步 新建的acme.sh文件夹绝对位置对应
屏幕截图 2024-07-14 160946.png


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

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


3、在控制面板 任务计划 新增 计划的任务 用户定义的脚本
08.png
名称自定义,用户账号务必选 root
09.png
用户定义的脚本填入以下代码
  1. bash /volume1/docker/acme.sh/acme.sh >> /volume1/docker/acme.sh/log.txt 2>&1
复制代码
10.png
注意,这里的volume1要根据自己的实际情况填写,填写acme.sh文件夹的绝对位置。感谢 20L 提醒。
屏幕截图 2024-07-14 150606.png

计划这里选择 每月重复
11.png

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

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


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


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

对比下原始的证书信息
捕获.PNG

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

评分

参与人数 1邪恶指数 +40 收起 理由
阿财 + 40 非常赞同

查看全部评分

发表于 2025-4-17 17:05 | 显示全部楼层
conzz 发表于 2025-4-17 16:47
遇到问题了,lucky 反代 群晖drive 不行,提示证书有问题,bitwarden 有网页的倒是正常使用 ...

是的, 会有小BUG,网页访问HTTPS是没问题的, 但是走端到端的服务就有一些会不行。
发表于 2025-4-17 16:47 | 显示全部楼层
寂寞喋喋不休 发表于 2024-12-5 13:27
反代,访问是可以,可是Synology Drive Client你怎么办,Bitwarden怎么办,还有其他各种服务的证书,其实 ...

遇到问题了,lucky 反代 群晖drive 不行,提示证书有问题,bitwarden 有网页的倒是正常使用
发表于 2025-1-9 08:26 | 显示全部楼层
kvmi 发表于 2025-1-8 13:38
这是不是意味着部署在路由器里面,后面群晖不用再导入证书了?

是的,我是威联通的nas,不用导入证书
通过lucky代理访问了
发表于 2025-1-8 13:38 | 显示全部楼层
apple524 发表于 2024-7-15 17:01
不需要,目前80 443 家宽都是被封的
反代的意思就是 我对外开一个端口 譬如6666端口
家里的其他设备可以 ...

这是不是意味着部署在路由器里面,后面群晖不用再导入证书了?
发表于 2024-12-5 13:42 | 显示全部楼层
寂寞喋喋不休 发表于 2024-12-5 13:27
反代,访问是可以,可是Synology Drive Client你怎么办,Bitwarden怎么办,还有其他各种服务的证书,其实 ...

我luck里面申请了一个证书书,譬如 chiphell.com
luck代理 1.chiphell.com --> 192.168.1.10
luck代理 2.chiphell.com --> 192.168.1.20
.....

用不着申请好多证书的


lucky里面 安全管理
域名列表就写
*.chiphell.com
chiphell.com
发表于 2024-12-5 13:27 | 显示全部楼层
apple524 发表于 2024-7-17 15:11
我是luck 反代到威联通的nas的,证书我都没绑在nas上,也是用https访问

反代,访问是可以,可是Synology Drive Client你怎么办,Bitwarden怎么办,还有其他各种服务的证书,其实还是都得手动来一遍。
发表于 2024-11-13 11:24 | 显示全部楼层
阿里有免费的泛域名证书吗?子域名较多且随时会增加的朋友还是用Let's Encrypt的泛域名证书更合适。
 楼主| 发表于 2024-11-13 11:16 | 显示全部楼层
highchh 发表于 2024-11-13 11:03
我群晖也是这么干的,但是现在直接在iKuai上安装了lucky,现在是用lucky就行了,不过群晖上的脚本我没停, ...

lucky我也尝试过,确实比这种配置方式简易,好在配置一次就行,以后就不用管了。

lucky底层应该也是用的acme.sh这个脚本来续签的。
发表于 2024-11-13 11:03 | 显示全部楼层
我群晖也是这么干的,但是现在直接在iKuai上安装了lucky,现在是用lucky就行了,不过群晖上的脚本我没停,相当于两个都在自动延期,暂时没有发现问题。
发表于 2024-11-13 10:26 | 显示全部楼层
fatppmm 发表于 2024-11-12 22:27
还是宝塔面板好,能够自动获取证书

自动获取证书能自动替换吗?
发表于 2024-11-13 10:26 | 显示全部楼层
高子 发表于 2024-11-12 22:30
SYNO_DID='通过浏览器获取的did数值'

你这里怎么填的?

我没填写,是我的设置关系,我强制了所有管理员都要开启二次验证了,后来指定后就可以了,想问问楼主你有没有研究过不用管理员权限,单独分配用户权限能不能使用,我观察日志后发现好像普通用户没有权限,但是不知道给哪个权限才能让他能把证书替换进去
发表于 2024-11-13 09:51 | 显示全部楼层
步骤详细清晰
 楼主| 发表于 2024-11-12 22:30 | 显示全部楼层
绝世小坏 发表于 2024-11-12 22:04
我重新修改了下,终于出日志了,但是无法替换证书,好像是这样的意思,请问是哪里的问题吗?群晖帐号是我单独创 ...

SYNO_DID='通过浏览器获取的did数值'

你这里怎么填的?

应该是这样的吧
SYNO_DID=''
发表于 2024-11-12 22:27 | 显示全部楼层
还是宝塔面板好,能够自动获取证书
发表于 2024-11-12 22:04 | 显示全部楼层
我重新修改了下,终于出日志了,但是无法替换证书,好像是这样的意思,请问是哪里的问题吗?群晖帐号是我单独创建的,并没有开启二次验证的管理员帐号 QQ截图20241112220253.jpg 请问这是什么原因啊?
发表于 2024-11-12 21:30 | 显示全部楼层
非常奇怪啊,群主我完全按照你的方式跟流程做的,但是我的日志里是看不懂的东西 QQ截图20241112213005.jpg
发表于 2024-11-7 19:57 | 显示全部楼层
这是啥原理?能解决家用宽带80、443被封的导致无法验证的问题?
发表于 2024-11-4 19:48 | 显示全部楼层
这个可以有,谢谢分享
发表于 2024-7-17 16:54 | 显示全部楼层
高子 发表于 2024-7-17 16:14
大佬,再请教一下,对外开放一个端口的意思是,在路由器上设置一个端口转发么?

转发的目的地指向哪里呢 ...


这只是一个比喻,其实不需要手动设置端口,防火墙设置端口变成端口转发了。
可以参考相关教程
https://lucky666.cn/docs/shareteach/
 楼主| 发表于 2024-7-17 16:14 | 显示全部楼层
apple524 发表于 2024-7-15 17:01
不需要,目前80 443 家宽都是被封的
反代的意思就是 我对外开一个端口 譬如6666端口
家里的其他设备可以 ...

大佬,再请教一下,对外开放一个端口的意思是,在路由器上设置一个端口转发么?

转发的目的地指向哪里呢?
发表于 2024-7-17 15:11 | 显示全部楼层
高子 发表于 2024-7-17 14:17
那岂不是每2-3个月就得导一次?

有点没搞明白,如果不导入,过期了,会怎么样? ...

我是luck 反代到威联通的nas的,证书我都没绑在nas上,也是用https访问
 楼主| 发表于 2024-7-17 14:17 | 显示全部楼层
apple524 发表于 2024-7-17 12:49
lucky上的证书可以下载下来,导入群晖机器里面
我威联通的是可以导入的,群晖你可以试试看 ...

那岂不是每2-3个月就得导一次?

有点没搞明白,如果不导入,过期了,会怎么样?
发表于 2024-7-17 12:49 | 显示全部楼层
高子 发表于 2024-7-17 10:59
请教一下,在Lucky上设置过证书续签,是不是就不用管群晖的证书那边了

lucky上的证书可以下载下来,导入群晖机器里面
我威联通的是可以导入的,群晖你可以试试看
 楼主| 发表于 2024-7-17 10:59 | 显示全部楼层
apple524 发表于 2024-7-15 17:01
不需要,目前80 443 家宽都是被封的
反代的意思就是 我对外开一个端口 譬如6666端口
家里的其他设备可以 ...

请教一下,在Lucky上设置过证书续签,是不是就不用管群晖的证书那边了
发表于 2024-7-15 17:15 | 显示全部楼层
在VPS上用acme申请泛域名证书,每日定时同步一次
 楼主| 发表于 2024-7-15 17:09 | 显示全部楼层
本帖最后由 高子 于 2024-7-15 17:14 编辑
apple524 发表于 2024-7-15 17:01
不需要,目前80 443 家宽都是被封的
反代的意思就是 我对外开一个端口 譬如6666端口
家里的其他设备可以 ...


对,我也觉得这个部署的路由器上更合适一点。看了下iStoteOS商店里有这个服务APP
发表于 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 16:55 | 显示全部楼层
apple524 发表于 2024-7-15 16:26
同意,LUCKY确实傻瓜化,而且反代,端口映射等一众功能都全了

请教一下:设置反代是不是要求80端口没被封?
发表于 2024-7-15 16:43 | 显示全部楼层
直接LUCKY全部搞定,少走很多很多弯路
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-4-26 09:45 , Processed in 0.016850 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表