証明書は90日間有効で、期限切れまで30日以内になると証明書が再発行出来るようになります。
証明書が再発行出来るかを毎日確認して、再発行できれば発行するように設定します。
自分のOSはUbuntu16.04です
--agree-tos
は自動で利用規約に同意するフラグです
再発行が成功すればwebサーバーをリロードします。失敗すればリロードしません。
sudo vi /etc/systemd/system/certbot.service
[Service]
Type=oneshot
ExecStart=/usr/bin/certbot renew --agree-tos
ExecStartPost=/bin/systemctl reload apache2
Type=simple
デフォルトの値です。ExecStart で起動するプロセスはサービスのメインプロセスです。
forking – ExecStart で起動するプロセスは、サービスのメインプロセスになる子プロセスを起動します。親プロセスは、このプロセスが完了すると終了します。
Type=oneshot
このタイプは simple と同様ですが、プロセスは、結果として生じるユニットを起動する前に終了します。
ExecStart
ユニットの起動時に実行されるコマンドまたはスクリプトを指定します。ExecStartPre および ExecStartPost は、ExecStart の前後に実行されるカスタムコマンドを指定します。Type=oneshot は、順次に実行される複数のカスタムコマンドの指定を可能にします。
```
毎日certbot.serviceを実行するタイマーです
sudo vi /etc/systemd/system/certbot.timer
[Timer]
OnCalendar=daily
RandomizedDelaySec=1day
Persistent=true
[Install]
WantedBy=timers.target
タイマーを有効化して実行します
sudo systemctl enable certbot.timer
sudo systemctl start certbot.timer
ログを見るには
sudo journalctl -u certbot.service