Let's Encrypt certificate expiration notice~というメールが届きました。
https化したサイトの証明書を更新せよ、という依頼なのです。
3ヶ月で証明書の有効期限が切れてしまうので、更新しないといけません。
証明書の更新方法を解説します。
ちなみに、以前は、以下の記事で、https化するために、Let's Encryptを使えば簡単ですよ~という紹介をしてました。まだ自分のWebサイトやブログを、https化していない人は、まずかこちらからはじめて下さいね。
Let's Encryptの証明書更新コマンドは簡単
ぼくはLinux CentOS7にインストールしてますので、CentOS7用の手順を書きますね。
証明書を更新するのはすごく簡単、以下のコマンドを発行するだけ。
certbot renew
※certbotで動かない場合は、「certbot-auto renew」の場合もあります
権限がない場合は、rootにユーザ変更したり、sudo付きで実行しましょう。
実際に動かしてみました。
順調に動いていくと、最後に renewals succeeded と出れば、完了です。
あっという間でした。
毎回やるのは面倒&忘れるので、自動更新にしよう
すごく簡単な手順なんですが、毎回やるのは面倒だし、忘れて証明書が失効するかもしれません。
自動更新の設定を入れておくといいですよ。
ぼくはLinux CneOS7用の手順を書きます。
まずは自動更新の実行用スクリプトを準備
自動更新をするためのスクリプトを準備します。
今回は「update.sh」というファイルで準備しました。
#!/bin/bash PATH=$PATH:/usr/sbin/ certbot renew
これはbashというシェル(=Linuxのコマンドをまとめたもの)で書いています。
1行目では、bashを使っているという宣言をしています。
2行目はパスを追加しています。cronで実行するときと、ログインして実行するときはパスが異なります。ぼくは動作確認をしたときに、/usr/sbinにパスが通っていなくて失敗したので追記しました。
3行目は「certbot renew」コマンドです。
ぼくはこの「update.sh」ファイルを「~root/letsencrypt」の下に保存しました。
実行権限を追加
ただファイルを作っただけだと権限がないので、
chmod 755 ~root/letsencrypt/update.sh
などとコマンドを打って権限を追加しましょう。
cronを使おう
cronという、決まった時間に決まったコマンドを発行する便利な仕組みがあります。
これを活用します。
cron設定をするには、crontabコマンドを使います。
下のように、crontabに -eオプションをつけて実行します。
crontab -e
そうすると、入力ページが下のように出てきます。
「i」ボタンを押して、編集モードにします。
下のように、設定を入力してください。
0 0 1 * * ~root/letsencrypt/update.sh
解説すると、左から実行する
- 分
- 時
- 日
- 月
- 曜日
- コマンド
を並べます。
この例では、
「0分 0時 1日 すべての月 全ての曜日 に~root/letsencrypt/update.shを実行」
という意味になります。
要は、毎月1日の0時0分に、「certbot renew」コマンドで、証明書を更新するのです。
書き終わったら、「:(コロン)wq」と押して下さい。」
これでウインドウが閉じて、保存完了です。
便利ですよね!活用してみてください。