ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

【Certbot】Let’s Encrypt の自動更新を cron なしで実現

Certbot の定期処理を cron で設定していたのに、それとは別に定期処理が動いていたため、どこから動いていたか調べてみました。

Certbot とは?

Certbot は無料かつ自動で SSL 証明書を発行できるツールです。 CSR と KEY ファイルの作成から Web サーバーの設定まで自動で行ってくれます。

環境

  • OS: CentOS Linux release 7.9.2009 (Core)
  • Webサーバ: nginx

設定

cron を利用して定期的に certbot の証明書更新処理を実行させる方法がスタンダードでしたが、Snap 版 certbot では自動更新機能が実装されています。

snap.certbot.renew.service

# cat /etc/systemd/system/snap.certbot.renew.service 
[Unit]
# Auto-generated, DO NOT EDIT
Description=Service for snap application certbot.renew
Requires=var-lib-snapd-snap-certbot-2618.mount
Wants=network.target
After=var-lib-snapd-snap-certbot-2618.mount network.target snapd.apparmor.service
X-Snappy=yes

[Service]
EnvironmentFile=-/etc/environment
ExecStart=/usr/bin/snap run --timer="00:00~24:00/2" certbot.renew
SyslogIdentifier=certbot.renew
Restart=no
WorkingDirectory=/var/snap/certbot/2618
TimeoutStopSec=30
Type=oneshot

snap.certbot.renew.timer

# cat /etc/systemd/system/snap.certbot.renew.timer 
[Unit]
# Auto-generated, DO NOT EDIT
Description=Timer renew for snap application certbot.renew
Requires=var-lib-snapd-snap-certbot-2618.mount
After=var-lib-snapd-snap-certbot-2618.mount
X-Snappy=yes

[Timer]
Unit=snap.certbot.renew.service
OnCalendar=*-*-* 11:04
OnCalendar=*-*-* 19:51

[Install]
WantedBy=timers.target