Lets-Encrypt

certbot-nginx 中是否有“嘗試重新安裝此現有證書”的命令行標誌?

  • August 17, 2022

我有一個每天執行命令的腳本 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?

您可以嘗試使用-n參數執行命令:

無需使用者輸入即可執行。這可能

需要額外的命令行標誌; 如果發現缺少一個,客戶將

嘗試解釋哪些是必需的

如果這沒有幫助您可以使用常用方法來回答命令行工具的問題:

  1. 將答案輸入命令
echo "1" | certbot [...]
  1. 利用expect
  2. 使用其他方式編輯配置文件,例如,sed或您選擇的配置管理解決方案。

你應該使用

certbot renew

它會自動完成所有操作

renew 作用於多個證書,並始終考慮每個證書是否即將到期。因此,renew 適合(並且設計為)自動使用,以允許您的系統在適當的時候自動更新每個證書。由於 renew 僅更新即將到期的證書,因此它可以根據需要頻繁執行 - 因為它通常不會採取任何措施。

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

如果您的certbot安裝正確完成,則很可能已經設置了一個 cron 作業來執行此操作(因此您不必自己手動執行此操作)。我最近使用snapcertbot安裝在 ubuntu 22 伺服器中,並自動添加了一個 cronjob 。/etc/cron.d/certbot

引用自:https://serverfault.com/questions/1108357