let's encryptでssl化したLightsailの証明書を更新する
久しぶりの更新
1か月ぶりの更新となります。 この一か月間何をしていたかというと、仕事が結構忙しかったことに加えてスマブラSPの発売が重なり、「あーブログ書かなきゃなー」とか思っているうちに年末年始に。。。 また、習慣的にアウトプットしていきたいと思います。
本題
最初のほうのエントリでこのブログはAWS Lightsailで運用しているというお話をしました。 選定理由としては、AWSサービスに触るとっかかりにしたかった点に加えて、とにかくランニングコストが安かった点が挙げられます。 また、最近のサイトはhttpsが当たりまえらしいので、こちらもできるだけコストを抑えるために「let's encrypt」というサービスを利用してサーバー証明書を発行しました。
証明書には更新が必要
ちなみにこの証明書、90日間しか有効期間がないので都度更新が必要になります。 残り20日を切るとこんな感じのメールが飛んできます。
Apacheがいない
証明書自体の更新は
certbot-auto renew
とすれば問題なく実行されたのですが、引っかかったのがその証明書の適用先。
Apacheであれば確かconfディレクトリ配下にファイルを置けばよかったはず。。。と思い、/etcを探してみたもののhttpdが見つからず。 じゃあnginxか?と思い、探してみたもののこちらも見つからず。
そもそもこのサーバはどうやってhttpリクエストを受け取ってるんだ?と疑問が湧いてきたため調べてみるとすぐに解決。 どうやらbitnamiの中にApacheがいてその子がやり取りしてくれているらしい。
証明書を再配置
探しに行くと/opt/bitnami/apache2/confにちゃんと証明書ファイル(server.crtとserver.key)が置いてありました。 ということで更新した証明書(/etc/letsencrypt/live/xxxx/fullchain.pemと/etc/letsencrypt/live/xxxx/privkey.pem)をそれぞれserver.crt,server.keyに上書きしてあげれば再配置完了です。
再起動も忘れずに
bitnamiのApacheを再起動するためには以下のコマンドで
sudo /opt/bitnami/ctlscript.sh restart apache
怠惰はエンジニアの美徳
90日に一度以上の手順を実施する必要があるため、cronに登録して自動化すると楽でいいですね。