nologyance.net

日々のアウトプット

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に登録して自動化すると楽でいいですね。