【超カンタン!】BitnamiでLet’s Encryptを導入する方法

わかった女子 サーバ・ソフト

はじめに

ブログのSSL化、無料で済ませたい!

そう思ったら、SSL証明書の選択は2つに絞られますよね。

・ACM(AWS Certificate Manager)
・Let’s Encrypt

このどちらかです。

でも、無料のACM証明書を導入するためにはどうしてもALB(Application Load Balancer)を導入しなきゃいけないので、SSL証明書自体は無料でも月額費用が高くついちゃうんですよね…。

そうすると自動的に「Let’s Encrypt」をサーバにインストールする選択が残るんですけど、Bitnamiでワードプレスブログを構築しているユーザーがカンタンにLet’s Encryptの導入しようにも、英語サイトしかない!!!

いや、一部あるんですが超カンタンな方法が載ってるサイトは英語なんですよね。

じゃあ記事にすればいいじゃん!ってわけです。

スポンサーリンク

Bitnami×Let’s Encryptの導入対象

Bitnami

この記事のやり方だと、前提として以下の条件が満たされている必要があります。

Bitnamiユーザーとして対象サーバのインスタンスにログインできること
独自ドメインを持っていること
・そしてそのドメインが該当のインスタンスのパブリックIPを向いていること

たとえばAWSのマーケットプレイスでBitnami×ワードプレスのパッケージを購入してインストールした方であれば何ら問題なく条件に合致しますので、ご安心を!

あとは、SSL対応したいんだから独自ドメインは持っていて、「HTTP」でのアクセスはできる状態が前提なわけですね。

あとは常時SSL化だけが残っているわけです。

Let’s Encryptの導入は驚くほどカンタンです。

リス太
リス太

恐れずいきましょう!

Legoクライアントのインストール

1の女子

まずはSSHターミナルソフトなどでインスタンスにアクセスします。

もし、SSHターミナルソフトってなにさ?って方は「【読了5分+作業5分】SSHターミナルソフトとFTPクライアントソフトで事前準備完了!」を参考にしてダウンロードしてアクセスしましょう!

Bitnamiユーザーとしてサーバにアクセスします。

まずは「Legoクライアント」をGitにアクセスしてインストールします。
大丈夫です。なにも考えず、ただただコマンドを打つだけです。

cd /tmp
curl -Ls https://api.github.com/repos/xenolf/lego/releases/latest | grep browser_download_url | grep linux_amd64 | cut -d '"' -f 4 | wget -i - tar xf lego_v2.3.0_linux_amd64.tar.gz
sudo mv lego /usr/local/bin/lego

一点注意点としては、コマンド内の「lego_v2.3.0_linux_amd64.tar.gz」は2019年3月22日現在の最新ファイルです。

作業されるタイミングによっては、バージョンが変わっているかもしれないので、都度最新バージョンをGitHubのlegoのページで確認して、必要だったら「2.3.0」の部分だけ変えてくださいね!

あと、どうしてもうまくいかないって人は、上のコマンドの「wget -i – tar」の部分の「tar」の前に半角スペースが空いているか注意してくださいね!

ちなみにターミナルソフトの使い方が「ようわからん!」って人は、上のコマンドを1行ずつコピーして右クリックしてエンターを繰り返せば勝手に処理されますぜ!

リス太
リス太

一応、慎重に作業しましょうね。

スポンサーリンク

Let’s Encrypt証明書を生成

2の女子

ここから先の流れは、

BitnamiアプリケーションがホストされているサーバのパブリックIPアドレスに対してSSL対応したいドメインのDNS設定が正しくされていること

が前提です。

いよいよLet’s EncryptのSSL証明書を作っていきますよ。

まず、Bitnamiのサービスをいったん停止します。

sudo /opt/bitnami/ctlscript.sh stop
リス太
リス太

ちなみに、コマンドって「sudo」からはじまる記述が多いと思いますが、これ、「Super User」(スーパーユーザー。root権限、特権レベルのユーザー)としてこれから書きますよってことです。厳密には「su」と「sudo」は違いますが、それはまた別の機会に。

次にドメインに対して、新しい証明書を生成するコマンドです。

sudo lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="www.DOMAIN" --path="/etc/lego" run
リス太
リス太

「EMAIL-ADDRESS」、「DOMAIN」は適宜自分のものに変えてください。

また、サブドメインを含む複数のドメインをSSL化する必要があるときは、「–domains=”www.DOMAIN”」の「www」を対応したいサブドメインに変えればOKです。

たとえば、「grosme-fukugyo.com」の他にも、「www.grosme-fukugyo.com」と「sub.grosme-fukugyo.com」の2つのサブドメインについて同時にSSL対応したい場合は、

sudo lego --email="admin@grosme-fukugyo.com" --domains="grosme-fukugyo.com" --domains="www.grosme-fukugyo.com" --domains="sub.grosme-fukugyo.com" --path="/etc/lego" run

といったコマンドになるってことです。便利ですね。

エンターを押すと、承認を求められるので「Y」と入力してエンター

あとは、自動で処理が進んで、「/etc/lego/certificates」というディレクトリが作られて、「DOMAIN.crt」という証明書ファイルと「DOMAIN.key」という鍵ファイルがディレクトリ内に生成されます(もちろん「DOMAIN」の部分は自分のドメインになりますよ)。

ちなみにlegoコマンドが実行できないときは、/usr/local/bin/legoのパーミッション設定を見直してみましょうね!

Let’s Encryptの証明書をWebサーバにセットする

3の女子

あとは生成した証明書をWebサーバに設定してあげるだけです。

ちなみにお使いのWebサーバが「apache」なのか「NGINX」なのかでコマンドが変わります。

どちらかわからないという人は、以下のコマンドを打てばわかりますよ!

sudo /opt/bitnami/ctlscript.sh status

apacheの場合

sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt.old
sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key.old
sudo mv /opt/bitnami/apache2/conf/server.csr /opt/bitnami/apache2/conf/server.csr.old
sudo ln -s /etc/lego/certificates/DOMAIN.key /opt/bitnami/apache2/conf/server.key
sudo ln -s /etc/lego/certificates/DOMAIN.crt /opt/bitnami/apache2/conf/server.crt
sudo chown root:root /opt/bitnami/apache2/conf/server*
sudo chmod 600 /opt/bitnami/apache2/conf/server*
リス太
リス太

「DOMAIN」の部分は自分のドメインに変更してくださいね!

NGINXの場合

sudo mv /opt/bitnami/nginx/conf/server.crt /opt/bitnami/nginx/conf/server.crt.old
sudo mv /opt/bitnami/nginx/conf/server.key /opt/bitnami/nginx/conf/server.key.old
sudo mv /opt/bitnami/nginx/conf/server.csr /opt/bitnami/nginx/conf/server.csr.old
sudo ln -s /etc/lego/certificates/DOMAIN.key /opt/bitnami/nginx/conf/server.key
sudo ln -s /etc/lego/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/server.crt
sudo chown root:root /opt/bitnami/nginx/conf/server*
sudo chmod 600 /opt/bitnami/nginx/conf/server*
リス太
リス太

こちらも同様に、「DOMAIN」の部分は自分のドメインを!

最後にBitnamiサービスを再起動したら完了です。

sudo /opt/bitnami/ctlscript.sh start
スポンサーリンク

Let’s Encrypt証明書の更新

4の女子

おまけとして、Let’s Encryptの証明書更新方法も書いておきます。

Let’s Encryptって3か月しか期限がないので、更新作業は必須なんですよ。
やり方はカンタンです。

sudo /opt/bitnami/ctlscript.sh stop
sudo lego --tls --email="EMAIL-ADDRESS" --domains="DOMAIN" --path="/etc/lego" renew
sudo /opt/bitnami/ctlscript.sh start
リス太
リス太

こちらも「EMAIL-ADDRESS」と「DOMAIN」は自分のものに変更してくださいね。

おわりに

「BitnamiでLet’s Encryptを導入する方法」でした。

すごくカンタンでしたよね。

お話ししたとおり、Let’s Encryptは3か月で更新しなければいけない証明書なので、更新作業を頻繁にしなきゃいけないのが、ちょっと欠点ですね。

リス太
リス太

でも、無料ですけどね。

あとは、証明書を更新するスクリプトを書いて、自動更新の設定をすることもできますが、これはまた別の記事で☆