Let’s Encrypt でSSL化しました

昨今、常時SSL化というのは当然の流れになりつつあり、当サイトも前々からSSL化したいと思っていた。
なおかつ、Let’s Encrypt も使いたいと思っていたので、重い腰をあげてSSL化してみた。
Let’s Encrypt の設定は初めてだったが、思った以上に簡単に設定できた。

ACME クライアント

Let’s Encrypt の仕組みとかの説明は省略する。
Let’s Encrypt って実際に何をどう設定すればいいの?てことになる訳だが、これには ACME クライアントというのをインストールし、設定していく。
ACME クライアントは、ドメインの管理者であることを検証し、Let’s Encrypt から証明書を発行してもらうためのアプリケーションだ。
詳細は公式サイトなどを参照。

ACME クライアントは Let’s Encrypt では提供しておらず、サードパーティー製を使う。
最も有名なのが Certbot だ。
Let’s Encrypt 公式が、

Let’s Encrypt では、ほとんどの人に Certbot クライアントをおすすめしています。

と書いているくらいだから、デファクトスタンダードと言っていいのではないだろうか。

Amazon2 Linux へのインストール

実は certbot は公式には Amazon2 Linux に対応していないようだ。
公式手順のOSの選択欄にないし、certbot-auto を実行すると下記エラーが出力される。

Sorry, I don't know how to bootstrap Certbot on your operating system!

You will need to install OS dependencies, configure virtualenv, and run pip install manually.
Please see https://letsencrypt.readthedocs.org/en/latest/contributing.html#prerequisites
for more info.

しかもリンク先切れとーし!

しかしこれには AWS 側で対応方法が整備されていて、こちらのチュートリアルに詳細な手順が書いてあった!
この手順通りに実行したら全くもって躓くことなく設定できて、思った以上に簡単だった。
自分の環境だと、conf ファイルを分けて include している形になっているのだが、設定ファイルの書き換えも全て certbot にお任せで問題なし。最高。

なお、インストールした環境の各プロダクトのバージョンは下記の通り

  • OS: Amazon Linux 2
  • Apache: 2.4.41
  • php-fpm 7.3.16
  • DB: mariadb-server-5.5.64-1

OS と Apache 以外関係ないと思うけど、記録として。