Let’s Encryptで証明書の有効期限が迫っているとのメールが来た件
Contents
警告メール
このサイトhttps対応はLet’s Encryptを使っているのだが「もうすぐ証明書の有効期限が切れる」とのメールが届いた。
無料なのにきちんと親切に案内してくれるのはとてもありがたい。
Let’s Encryptの証明書の有効期限は90日間なのでcrontabで毎月1日のAM5:00に自動更新をかけるようにしていたのだが、何らかの理由で自動更新が止まっていたらしい。
環境
今のServerの環境は以下の通り。
Server | AWS(Amazon Web Services) EC2(Elastic Compute Cloud) |
OS | Ubuntu Server 18.04 LTS(HVM)64 bit |
CMS | WordPress 5.4.2 |
有効期限の確認
念の為、Chromeで証明書の有効期限を確認する。
有効期限が8月9日になっている。
本来であれば実行されるはずの6月1日、7月1日の自動更新が実行されていない模様。
※実行されていれば証明書の有効期限がその日から90日後になっているはず。
心当たりは実はある。
6月の中旬にServerのOSをUbuntu 16.04から18.04にバージョンアップしている。
その際に何らかの理由でcrontabかLet’s Encryptの設定が変わってしまったのだと思う。
AWS Serverに接続
crontabを確認
ServerにPuTTYで接続して以下のコマンドでcrontabの設定を確認する。
sudo crontab -l
certbot(証明書を更新するためのコマンド)はcrontabに設定されていて特に問題は無さそう。
certbotを確認
続いて以下のコマンドで証明書の有効期限のシミレーション更新を実行してみる。
※–rty-runは実際の更新は行わずにシミレーションモードで実行するオプション
sudo certbot renew --dry-run
するとcommand not foundになってしまった。
certbotをインストール
どうやらServerのOSをUbuntu 16.04から18.04にアップグレードした際にcertbotのプログラム自体がなくなってしまった模様。
仕方が無いので以下のコマンドで改めてcertbotをインストールする。
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-apache -y
正常にインストールされた。
手動でシミレーション実行
続いて以下のコマンドで再びシミレーション実行してみるがエラーになってしまった。
sudo certbot renew --dry-run
”Another Instance of Certbot is already running.”(他のCertbotのインスタンスが既に動いている)でエラーになってしまった。
しかしこのエラーはインストール直後にコマンドを実行したせいと思われ、psコマンドでプロセスを監視した所、他のcertbotは動いていなかったのでしばらく待ってから同じコマンドを入力した所、今度は通った。
しかしここで不可解な事が。
–dry-runはシミュレーションモードで実際の証明書の有効期限の更新は行わないと思っていたのだが何故か有効期限が更新されてしまう。
sudo certbot renew
念の為、–dry-run無しで実行したが既に更新済みの為、証明書の有効期限を更新しないとのメッセージが表示された。
恐らくだがインストールをした際に裏で証明書の有効期限の更新が動いていたのだと思う。
だから直後に–rty-runで実行した時に”Another Instance of Certbot is already running.”のメッセージが表示されたのだと想像する。
元々Ubuntu 16.04の時にはcetbotは設定されていたのでまっさらな状態からのインストールとは若干動きが違ったのかも知れない。
とりあえず有効期限は延長されたので良しとすることにした。
以上で今回の記事は終了とする。
この記事が何処かで誰かの役に立つことを願っている。
尚、当記事中の商品へのリンクはAmazonアソシエイトへのリンクが含まれています。Amazonのアソシエイトとして、当メディアは適格販売により収入を得ていますのでご了承ください。
最近のコメント