Let’s Encrypt 憑證有效期只有 90 天,正式站點一定要配置自動續期,避免憑證過期導致 HTTPS 報錯。
如果你已經用 Certbot 申請過憑證,通常只差兩件事:
- 配置定時任務
- 驗證續期流程是否真的可用
先確認 Certbot 是否已自帶定時任務
在不同系統中,Certbot 可能已經自動安裝定時任務(例如 systemd timer 或 /etc/cron.d/certbot)。
可以先檢查:
|
|
如果已經有有效定時器,一般不需要再重複加 crontab。
手動新增 crontab(推薦範例)
如果你希望自己明確管理續期任務,可用 root 使用者新增:
|
|
加入下面這一行(每天凌晨 3 點執行一次):
|
|
這條命令的含義:
0 3 * * *:每天 03:00 執行certbot renew:檢查並續期即將過期的憑證(不會每天都實際續期)--pre-hook:續期前停止 Nginx,避免 80/443 連接埠衝突(常見於 standalone 模式)--post-hook:續期後啟動 Nginx>> /tmp/certbot-renew.log 2>&1:將日誌追加寫入,方便排查
建議先做一次模擬續期
定時任務加好後,先手動驗證流程是否可用:
|
|
看到模擬續期成功,再交給定時任務長期運行。
常見注意點
- 如果你使用的是
webroot或nginx插件,很多情況不需要停 Nginx,可改為續期後重載:
|
|
-
certbot renew只會在憑證接近過期時才進行實際續期,因此每天跑一次是正常且常見做法。 -
建議把日誌改到可長期追蹤的位置(例如
/var/log/letsencrypt/),更利於維運。
總結
憑證自動續期的關鍵不是「把命令寫上去」,而是「確認命令能完整跑通」。
你只要完成這三步,通常就能穩定運行:
- 確認是否已有系統自帶定時任務
- 按需新增 crontab 並保留日誌
- 用
--dry-run做一次完整驗證