DSM7.0 使用 Let's encrypt 脚本 syno-acme nginx 重启问题

2022-08-27 19:38:21 +08:00
 zggsong

问题:

由于我使用了 frp+域名穿透 https 的方式,使用https://github.com/andyzhshg/syno-acme 申请 Let's encrypt 证书,今天突然发现证书是过期的,排查了一下 Log ,发现如下错误:

begin reloadWebService
reloading new cert...
/volume1/nas_share/certs/syno-acme/cert-up.sh: line 69: /usr/syno/etc/rc.sysv/nginx.sh: No such file or directory
done reloadWebService

后续在项目仓库issue中查到

nginx.sh在 dsm7 中并不存在,导致无法让 nginx 重新加载新证书,群晖自带的 nginx 使用 systemd 的方式管理,而普通的 systemctl reload nginx 也无法重新加载新的证书

解决

  1. 重启 nginx 服务 systemctl restart nginx,但是群晖很多服务基于 nginx ,导致很多套件重启,比较麻烦,耗时也比较久
  2. 使用synow3tool --gen-all && systemctl reload nginx 替代 restart ,"dsm7 中多了一个 nginx 的 www 证书路径,前面的 syno3tool 用于更新那个路径下的证书,更新后即可正常 reload 生效"
2090 次点击
所在节点    NAS
10 条回复
heiybb
2022-08-27 20:17:46 +08:00
synosystemctl restart nginx
j3n5en
2022-08-28 02:37:34 +08:00
不是有一个 dsm7 的 branch 吗?我就用着,能用
DianQK
2022-08-28 07:49:50 +08:00
ACME 其实提供了官方的部署的方式,参数 --deploy-hook synology_dsm

https://www.bilibili.com/read/mobile?id=13914241
zggsong
2022-08-28 13:50:29 +08:00
@j3n5en 一开始用的时候系统还是 dsm6 ,部署完服务, 后来升级到 7 ,才发现问题 分享出来 帮助更多人解决问题
zggsong
2022-08-28 13:50:46 +08:00
@DianQK 可以的,感谢分享
cppc
2022-08-28 21:01:52 +08:00
我也是用的 3 楼的方式,在群晖的 docker 里面跑的 acme
liaohongxing
2022-08-29 08:09:10 +08:00
为什么不用 https://github.com/acmesh-official/acme.sh ,你这个都几年没更新了。
zggsong
2022-08-29 08:41:44 +08:00
@liaohongxing 一开始只找到了这个就用这个了 tag 还在更新,小问题
peasant
2022-09-07 09:10:03 +08:00
我都是弄有效期 1 年的证书,发现不能用了再手动换一下
zggsong
2022-09-07 09:51:32 +08:00
@peasant 我之间建服务也是用的免费一年的 然后日历提醒每年重新申请 几年下来 有点费劲 还是自动化的香 (不过具体啥差别没深入研究过,就个人体验肯定是后者舒服)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/875859

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX