こんにちは。ふわふわしょうちゃんです。
「Let’sEncrypt」は、無料でSSL証明書を発行してくれるサービスです。
個人メディアなどで、複数ドメインを運営していると、それなりに費用が掛かってしまいます。
無料なら、利用したいですよね。
SSL証明書の有効期限は有償のサービスと比べ、90日と短いですが、自動更新も含めて、手順を残しておきたいと思います。
僕は、今回、新規ではなく、更新の作業でしたが、AWS公式ドキュメントに沿っているので、新規取得の方でも大丈夫だと思います。
想定環境
AWS EC2インスタンス
OS: AmazonLinux2
ミドルウェア: Apache
Let’sEncryptのSSL証明書更新エラー
Les’sEncryptのSSL証明書を更新するためにCertbotというパッケージがありますが、現状、AmazonLinux2は公式にサポートされていません。
僕は、新規証明書発行時は、別のやり方でCertbotをセットアップしていて、先日、更新作業時に、パッケージの依存関係で下記のエラーが発生しました。
「証明書」をクリックするとSSL証明書期限などが確認できます。
また、デベロッパーツールで、全てセキュアが緑になっているか確認します。
F12を押して、デベロッパーツールを起動してください。
デベロッパーツール起動後、「Security」タグを選択します。
全て緑色になっていることを確認してください。ここで緑色以外になっていれば、脆弱性がある可能性があるので、SSL/TLSのバージョンなど、調査する必要があります。
次は、SSL証明書更新の作業を自動化します。
SSL更新作業 をCronで自動化
step
1Crontabコマンドを実行
$ sudo crontab -u root -e
以下を追記します。
0 0,12 * * * root certbot renew --no-self-upgrade
毎日0:00と12:00にroot権限で実行する、という形でいきます。
ちなみに、Certbot開発側は、一日に2回実行することを推奨しているようです。
step
2Crontabが設定されているか確認
$ sudo crontab -u root -l
実行後、
0 0,12 * * * root certbot renew --no-self-upgrade
と、表示されればOKです。
これで作業は終了です。
最後に
やはり、Linux関連はパッケージの依存関係で、予期しないエラーに苛まれることが多いです。
AWS公式ドキュメントを探すまで、結構、時間が掛かってしまいました。
公式にサポートされていないのも、敷居を高く感じさせてしまう要素ですね。
いざ、やってみると、勉強にもなるので、是非、試してみてはいかかでしょうか。
じゃ、そーゆうことで!