Adamsandwich blog

Aim to be a Pokémon Master.

使用 certbot 自动更新 SSL 证书

如果你想用 Let's encrypt 为你的网站提供免费的 SSL 证书,之后最重要的便是自动更新你的证书以防用户获得糟糕的 SSL 安全警告。 Let's encrypt 的 SSL 证书会在安装之后的 90 天失效除非你在过期前更新。

Certbot 更新命令

Certbot 包含更新已存在证书的脚本,你可以使用下方的更新演练脚本来测试。

    $ sudo certbot renew --dry-run

如果上方的测试成功了接下来创建一个 cron 任务按间隔自动执行。

Certbot 自动更新 Cron 任务

  1. $ crontab -l
  2. no crontab for root
  3. $ crontab -e

add 0 */12 * * * root certbot renew --post-hook "systemctl restart nginx" to crontab file

它是如何运作的

这个 cron 任务会每天触发两次更新证书。certbot renew 会检查证书是否在接下来的 30 天过期。如果会过期接着它会更新。如果证书不会过期它不会执行其他操作。在更新证书时,它将使用证书创建过程中提供的相同信息,如电子邮件地址、域名、web 服务器根路径等。