|
|
デジサート Cron(定期実行)
デフォルトのsystemd timer
Certbotのご利用のバージョンによりましてはインストール時にデフォルトでsystemd timerを自動配置します。
・タイマー:snap.certbot.renew.timer(12時間ごと)
・サービス:snap.certbot.renew.service
・確認:systemctl list-timers | grep certbot
・次回実行時刻:systemctl status snap.certbot.renew.timer
本来はユーザー側でcronを書く必要はありません。
しかしながら、デジサート社のACMEでは「renew」と「reissue」の2通りのアクションがあり、
デフォルトタイマーでは使い分けが困難です。
処理をスクリプト化してcronを手動で設定することを推奨いたします。
デフォルトタイマーの有効化(任意)
必要に応じてデフォルトタイマーを有効化して下さい。
・sudo systemctl enable --now certbot.timer (有効化)
・systemctl list-timers | grep certbot (確認)
デフォルトタイマーの無効化(任意)
必要に応じてデフォルトタイマーを無効化して下さい。
・sudo systemctl disable --now certbot.timer (無効化)
・systemctl list-timers | grep certbot (確認)
処理をスクリプト化してcronを手動で設定する(任意)
Linux 標準で利用可能な cron を利用した自動運用について説明します。
(1) cron 編集コマンド呼び出し:
crontab -e
(2) cron 編集内容:
[minute] [hour] [day] [month] [day of week] [command]
|
項番
|
項目 |
説明
|
|
1
|
minute |
実行する分を 0-59 までの任意の整数で指定します
|
|
2
|
hour
|
実行する時間を 0-23 までの任意の整数で指定します
|
|
3
|
day
|
実行する日を 1-31 までの任意の整数で指定します
|
|
4
|
month
|
実行する月を 1-12 までの任意の整数で指定します
|
|
5
|
day of week
|
実行する曜日を 0-7 までの任意の整数で指定します(0 と 7 は日曜日)
0=日, 1=月, 2=火, 3=水, 4=木, 5=金, 6=土, 7=日
または、曜日を表す英語名でも指定可能です
sun, mon, tue, wed, thu, fri, sat |
|
6
|
command
|
実行するコマンドを指定します
|
|
項番
|
項目 |
説明
|
|
1
|
アスタリスク(/*)
|
すべての有効な値を指定できます。
[day]にアスタリスク(*)を指定すると毎日実行されます
|
|
2
|
ハイフン(-)
|
範囲を指定します。
1-3 の場合、1,2,3 を指定ことになります。
|
|
3
|
カンマ(,)
|
一覧を指定します。指定した整数すべてが対象となります。
1,4,7 の場合、指定した3つの整数を指定したことになります。
|
|
4
|
スラッシュ(/)
|
ステップ値を指定します。範囲の後に「/」がある場合、その範囲で指定した整数値
をスキップします。[minute]で 0-59/3 の場合、0-59 分の間で 3 分ごとに実行され
ます。
|
|
5
|
ハッシュ記号(#)
|
コメント行
|
cron 設定例
■再発行(reissu)の設定例
毎月1回各月の1日午前2時30分頃に実行する。
# [minute] [hour] [day] [month] [day of week] [command]
30 2 1 * * /cert-reissue.sh > /dev/null
cert-reissue.sh:
#!/bin/sh
/usr/bin/certbot certonly --standalone --register-unsafely-without-email --non-interactive --force-renewal --config-dir /opt/digicert/certificate --key-type rsa --server https://one.digicert.com/mpki/api/v1/acme/v2/directory?action=reissue&orderId=123456789 --eab-kid AAAAAAAAAAA --eab-hmac-key AAAAAAAAAA -d example.com,www.example.com
■更新発行(renew)の設定例
毎年1回(この例では)12月15日午前2時30分頃に実行する。(契約期間の終了日時期に合わせる)
# [minute] [hour] [day] [month] [day of week] [command]
30 2 15 12 * /cert-renew.sh > /dev/null
cert-renew.sh:
#!/bin/sh
/usr/bin/certbot certonly --standalone --register-unsafely-without-email --non-interactive --force-renewal --config-dir /opt/digicert/certificate --key-type rsa --server https://one.digicert.com/mpki/api/v1/acme/v2/directory?action=renew&orderId=123456789 --eab-kid AAAAAAAAAAA --eab-hmac-key AAAAAAAAAA -d example.com,www.example.com
|