关于 acme.sh 申请的免费证书, renew 的问题

243 天前
 g0python32

是这样子的, 我们小公司, 目前域名的证书都是用 acme.sh 申请的, 三个月有效期那种.

然后现在的模式是这样子, 项目是使用 rancher 部署, 然后 ssl 证书用服务器生成手动更新到 rancher 的证书列表中.

但现在手动在服务器 --force renew 证书, 证书到期貌似不会更新, 是还需要 install-cert 一遍再手动更新到 rancher 的证书列表中吗

个人对这个不是很了解, 自己的域名都是在自己的服务器上面, 没有这个担忧, 之前公司域名的证书都是用阿里云的免费的, 但是现在二级域名多了, 阿里云的免费额度不够了, 所以就用了 acme.sh

2205 次点击
所在节点    程序员
20 条回复
zapan
243 天前
totoro625
243 天前
感觉是 rancher 的问题
手动在服务器 --force renew 证书后检查证书文件是否更新,挨个环节检查
photon006
243 天前
acme 默认就会自动更新

检查定时任务: crontab -l
vate32
243 天前
写个小脚本,先 renew ,然后 install ,最后强制重启 nginx (-s reload 不行)
g0python32
243 天前
@zapan 感谢, 先看看这个工具的文档
g0python32
243 天前
@totoro625 我也不是很清楚, 个人域名的 acme 的 force renew 不会有这个问题的, 自动更新全靠 crontab 证书也一直没过期; 但是公司的域名配合 rancher 使用就是三个月要手动替换一次 pem 和 key
g0python32
243 天前
@photon006 crontab 是有的. 但是手动 acme.sh --renew --force 之后再 install-cert, rancher 那边显示的时间还是旧的时间.
v2ruiex
243 天前
端口也不能被占用,把 nginx 先关了再试试
g0python32
243 天前
@vate32 rancher 代替了 nginx 的作用了, 和这个没有关系的, renew 和 install 都执行了一遍, 证书过期时间还是旧的
totoro625
243 天前
@g0python32 #9 rancher 重启一下也不会更新吗,对应的是 nginx -s reload
g0python32
243 天前
@v2ruiex 和这个没有关系.

@totoro625 刚对比了之前的 pem 和 renew 之后的 pem, 不一致的, 所以只能手动更新了
totoro625
243 天前
@g0python32 #11 应该是证书文件更新了,但是 rancher 还是读取的自己缓存的证书,crontab 更新完证书再加一条让 rancher 重启一下就好了
yellowsky
243 天前
直接装 certbot ,自动 renew
lovelylain
243 天前
自己写个生效脚本,reload_cmd 指定,crontab 刷新后会自动 reload
JensenQian
243 天前
30 块钱买个一年 alpha ssl 的通配符
就是来源可能不太正规,有概率翻(不过没怎么见到过)
mgso
242 天前
检查一下是不是 ecc 的问题,之前一直用的好好的,突然有个版本更新后脚本自己执行了 install, 但是用的依旧是旧的过期的证书。且整个 renew 过程都是正常的

找了一圈发现它新生成的证书后面带了一个_ecc 。也就是说我本来应该是证书是 xxx.com 但 renew 后是 xxx.com_ecc ,

我的解决方案是 --installcert --ecc 添加一个-ecc 。让脚本安装 ecc 的版本证书

OP 可看看是不是同一个问题
zed1018
242 天前
@g0python32 #5 如果 OP 打算用 cert-manager 的话,我建议直接 dns01 ,用 https://github.com/DEVmachine-fr/cert-manager-alidns-webhook 这个三方的 webhook 走阿里云解析自动验证域名。http01 虽然可以少配置,但是国内你懂的,letsencrypt 的服务器验证很难保证稳定过。
kennylam777
242 天前
cert-manager +1

我記得 rancher 現在是 k8s 的吧, 你還要考慮的是 ingress 能不能直接跟據 k8s secret 的 public cert 更新而自動載入, Ingress-NGINX Controller for Kubernetes 是可以的

nginx -s reload 是有缺點的, 畢竟你的證書一直增加上去, 就要經常 reload

在 Ingress-NGINX Controller for Kubernetes 就直接用 Lua 動態載入來解決。

k8s 的問題, 還是用 k8s 的方式解決吧。
g0python32
242 天前
@kennylam777 #18 rancher 好像是阉割版的 k8s, k3s, 功能没有那么多. 实在不行就用 rancher api 更新吧😂
@zed1018 #17 好的 感谢, 目前来说还是先手动更新, 这些新的东西也不敢这么快就应用到生产环境
@mgso #16 应该和 ecc 没关系, 应该生成证书的机器和部署 rancher 的机器是分开的, 因为考虑到 gfw 的问题, 生成证书的机器在海外, rancher 在境内.
@JensenQian #15 哈哈, 公司业务还是优先考虑稳定, acme.sh 的免费证书虽然 90 天要 renew 一下, 但是稳定
@lovelylain #14 参考回复 #16 的, 应该和 reload 没关系
@yellowsky #13 acme.sh 也有 renew, 主要是生成证书和 racnher 不是同一台机器
@totoro625 #12 证书文件更新了, rancher 不能随便重启, 加上 rancher 和生成证书的服务器不在同一个服务器上面
liuhai233
230 天前
安装的时候默认会加个定时任务运行 acme --cron 吧

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

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

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

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

© 2021 V2EX