• 请不要在回答技术问题时复制粘贴 AI 生成的内容
g0python32
V2EX  ›  程序员

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

  •  
  •   g0python32 · Apr 25, 2024 · 3252 views
    This topic created in 748 days ago, the information mentioned may be changed or developed.

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

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

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

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

    20 replies    2024-05-08 02:29:48 +08:00
    zapan
        1
    zapan  
       Apr 25, 2024   ❤️ 1
    totoro625
        2
    totoro625  
       Apr 25, 2024   ❤️ 1
    感觉是 rancher 的问题
    手动在服务器 --force renew 证书后检查证书文件是否更新,挨个环节检查
    photon006
        3
    photon006  
       Apr 25, 2024   ❤️ 1
    acme 默认就会自动更新

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

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

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

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

    OP 可看看是不是同一个问题
    zed1018
        17
    zed1018  
       Apr 25, 2024   ❤️ 1
    @g0python32 #5 如果 OP 打算用 cert-manager 的话,我建议直接 dns01 ,用 https://github.com/DEVmachine-fr/cert-manager-alidns-webhook 这个三方的 webhook 走阿里云解析自动验证域名。http01 虽然可以少配置,但是国内你懂的,letsencrypt 的服务器验证很难保证稳定过。
    kennylam777
        18
    kennylam777  
       Apr 26, 2024   ❤️ 1
    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
        19
    g0python32  
    OP
       Apr 26, 2024
    @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 和生成证书的服务器不在同一个服务器上面
    awsl2333
        20
    awsl2333  
       May 8, 2024 via Android
    安装的时候默认会加个定时任务运行 acme --cron 吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5850 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 01:50 · PVG 09:50 · LAX 18:50 · JFK 21:50
    ♥ Do have faith in what you're doing.