certbot-nginx 中是否有“尝试重新安装此现有证书”的命令行标志?

certbot-nginx 中是否有“尝试重新安装此现有证书”的命令行标志?

我有一个每天运行命令的脚本 certbot --nginx -d $DOMAIN

为多个域名续订证书

You have an existing certificate that has exactly the same domains or certificate name you requested and isn't close to expiry.
(ref: /etc/letsencrypt/renewal/****.conf)

What would you like to do?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Attempt to reinstall this existing certificate
2: Renew & replace the certificate (may be subject to CA rate limits)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): Cert not yet due for renewal

如果证书尚未到期,我总是选择 1。我是否可以将标志传递给命令以使其始终选择 1?

答案1

您可以尝试使用以下命令运行-n范围

无需用户输入即可运行。这可能
需要额外的命令行标志;如果客户端发现 缺少
一个,它将尝试解释哪些是必需的

如果这没有帮助,您可以使用常用方法来回答命令行工具的问题:

  1. 将答案放入命令中

    echo "1" | certbot [...]
    
  2. 使用expect

  3. 使用其他方法来编辑配置文件,例如sed您选择的配置管理解决方案。

答案2

你应该使用

certbot renew

自动完成所有操作

renew 作用于多个证书,并始终考虑每个证书是否即将到期。因此,renew 适合(且设计为)自动使用,以允许您的系统在适当的时候自动续订每个证书。由于 renew 仅续订即将到期的证书,因此您可以根据需要频繁运行它 - 因为它通常不会采取任何行动。

https://eff-certbot.readthedocs.io/en/stable/using.html#renewing-certificates

如果你的certbot安装正确,很可能已经设置了一个 cron 任务来执行此操作(因此你不必手动执行此操作)。我最近certbot在 ubuntu 22 服务器上安装了折断并自动添加了一个 cronjob /etc/cron.d/certbot

相关内容