証明書自動更新修正

3ヶ月前にヴチ壊れてくれたCMSを修理、というか新たなものに置き換えたわけだけども、この中で設定されたはずのLet’s encrypt証明書自動更新が動いていない。このBlogもオシゴトサイトも。2月7日に期限切れますで、ってLet’s encryptから通知が来ちゃったよ。

3ヶ月毎に通知が来たらSSHでつないで更新、では面倒なので、こいつぁ直さにゃのぅ。

ぢつはこれ、3ヶ月前のシステム入れ替えの時点から原因の目星はついているんだわ。
Let’s encryptの期限更新作業はまずWebサーバを止めてからじゃないとスクリプトが動かない、という話なんだが、

自動設定されたcronがこれ。再確認のために日時指定を毎月25日に変えたが、もとは 0 0 1 * * で毎月1日の動作。
サーバー動いているまま更新スクリプト動かして再起動かけているだけっぽいね。
このせいで更新できていないんじゃなかろうかと。

そんなわけでサーバー止めて更新スクリプト動かして最後にサーバー起動するように変えませう。

まずは更新用スクリプトを別途作る。

場所はここじゃなくても良さそうだが、このBlogサーバにはなぜか /opt/bitnami/letsencrypt/scripts/ にすでに renew-certificate.sh スクリプトがあってそれを流用したので、オシゴトサイトの方も同じ場所に作る。
ここに書き込むには権限不足なので、nanoの前にsudoをつけて sudo nano renew-certificate.sh とせんといかん。

内容はコレ。
1. サーバ止めて、
2. legoで更新して、
3. サーバ起動する。
保存終了すればファイルができる。

できたのはただのテキストファイルなので、スクリプトとして実行できるように変更。

crontab -e でcron内容変更。直接legoじゃなくさっき作ったスクリプトを実行するようにする。

以上、完了。
このBlogはこれで無事更新できたのできっと問題ないだろう。2月1日0時実行でサーバは北米西部なので、念の為2月2日に確認だな。

カテゴリー: ガジェット パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です