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

298 天前
g0python32  g0python32

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

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

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

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

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

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

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

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

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

OP 可看看是不是同一个问题
zed1018
zed1018
298 天前
@g0python32 #5 如果 OP 打算用 cert-manager 的话,我建议直接 dns01 ,用 https://github.com/DEVmachine-fr/cert-manager-alidns-webhook 这个三方的 webhook 走阿里云解析自动验证域名。http01 虽然可以少配置,但是国内你懂的,letsencrypt 的服务器验证很难保证稳定过。
kennylam777
kennylam777
297 天前
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
297 天前
@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
286 天前
安装的时候默认会加个定时任务运行 acme --cron 吧

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

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

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

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

© 2021 V2EX