Let’s EncryptのSSL証明書の更新をcronで自動実行する

サーバー

ブログに記事を追加しようと思い、WordPressにログインしようと思ったら「この接続ではプライバシーが保護されません」と表示されている。

「この接続ではプライバシーが保護されません」と表示される

Let’s Encryptの更新(certbot renew)をかけるのを忘れて、Let’s Encryptの証明書の有効期限が切れてしまうと、Webサイトにこのような画面が表示されます。

通常なら期限切れが近くなると、Let’s Encryptの設定時に登録したメールアドレスにメールで通知が来るのだが、そのメールもチェックしていませんでした。

すぐさまサーバーにSSH接続して「certbot renew」を実行して証明書の有効期限を更新し、各種サービスを再起動してサイトのSSL証明書を有効化させましたが、今後は二度とこのような失態を繰り返さないようにLet’s Encryptの更新をcronで自動化する。

※動作確認環境
CentOS 7.6

Let’s Encryptの更新を行うシェルスクリプトを作成

まずシェルスクリプトを置いておくディレクトリを作成
※これはどこでもOKです。

シェルスクリプトを作成する。

※再起動するサービスは環境によって書き換えてください。(SSLに対応させているサービスは全て再起動が必要です。)

実行権限を付与

これでLet’s Encryptの更新を行うシェルスクリプトが完成です。

cronに登録

先ほど作成したシェルスクリプトをcronに登録して自動実行します。

cronを設定するためのエディタを開きます。

以下の設定内容を追加します。
毎週月曜日と木曜日のAM 4:10に「/tmp4SSL/SSLRenewCron.sh」を実行

Esc:wqEnterでエディタを閉じます。(※viの場合)

確認します。

OKです。cronの登録が完了しました。

まとめ

うっかりミスによるLet’s Encryptの期限切れを防ぐために、SSL証明書の更新作業はcronで自動化しましょう。

Let’s Encryptの設定時に登録したメールアドレスのメールチェックも忘れずに。もし何かしらの事情でcronでの自動更新作業に失敗しても、有効期限切れが迫ったドメインがある場合はメールで通知してくれます。

以上で解決です。

タイトルとURLをコピーしました